Rake migration with transactions

Hi!
I use migrations to handle my database scheme and i put all actions
between a transaction block like this .

execute “BEGIN work;”
execute “CREATE TABLE table1 (xxx);”
execute “CREATE TABLE table2 (xxx);”
execute “CREATE TABLE table3 (xxx);”
execute “COMMIT work;”

I do this because if ‘create table2’ fails, the process is aborted
but table 1 is still created.

Are there an easier way of doing this,
do i miss something obvious in migrations that does this by default?

Cheers!

Mathias
Stjernström