For data-only modifications, you can use a simple transaction do statement like anywhere else:
class TransactionTest < ActiveRecord::Migration def self.up transaction do execute “insert into some_table(some_column) values(‘some_value’)”
end
end
def self.down end end
For a cool slideshow that deals with this a little check out page 18 of: http://www.chariotsolutions.com/slides/PhillyOnRails-Migrations.pdf
If you want to make the switch to a database that supports transactions for ddl (like postgres), you can also install this plugin and it should solve most of your problems:
http://www.redhillconsulting.com.au/rails_plugins.html#transactional_migrations
I haven’t tried that latest plugin, but I regularly use transaction do for my more complicated data manipulations scripts.
Jeff