ActiveRecord migrations in a single transaction?

Is it possible to make Migrations occur in a single transaction, so that if the rake fails, it doesn't leave the database in a broken state, with half the changes made, and the other half incomplete?

Obviously, this depends on the database itself supporting transactions, but I'm using Postgres.

Stuart Grimshaw wrote:

Is it possible to make Migrations occur in a single transaction, so that if the rake fails, it doesn't leave the database in a broken state, with half the changes made, and the other half incomplete?

Obviously, this depends on the database itself supporting transactions, but I'm using Postgres.

>

I wrap my migrations in a transaction using postgresql, and it seems to work fine.

Me too.

But you need a database backend that will transact DDL changes. Not all do. Postgres for sure does, and now I don't have any half-made transactions anymore.

I can give you more details if needed.

Bye,

Guy.

Stuart Grimshaw wrote:

Is it possible to make Migrations occur in a single transaction, so that if the rake fails, it doesn't leave the database in a broken state, with half the changes made, and the other half incomplete?

Obviously, this depends on the database itself supporting transactions, but I'm using Postgres.

The easiest way for you is to use transactional_migrations plugin. Thus you won't need to put explicit BEGIN and COMMIT DDL statements in migrations.

http://www.redhillconsulting.com.au/rails_plugins.html#transactional_migrations

Hello: You wrote in another thread, now outdated, about a way for getting decimal support for ActiveRecord, in version 1.1.6. Is there a way of having that code? Thanks in advance.

Thanks Sava, this is what I went for in the end ...