Hi, I'm trying to run just one migration out of a whole bunch in my rails app. How can I do this? I don't want to run any of the migrations before or after it. Thanks.
There's got to be a way to run the migration class via the console. I can't seem to get the migrations code to be recognizable.
However, as the comments indicate, it's preferred to run the migrations in order. Use:
rake db:migrate VERSION=##########
Copy and paste your code in the migration to script/console?
rake db:migrate:redo VERSION=xxxxxxx
, but that will run the down
and then the up
step. You could do this in conjunction with commenting out the down step temporarily.
rake db:migrate:up VERSION=1234567890
similarly rake db:migrate:down
to take a specific migration down. You can get a list of available rake tasks with rake -T
.
I've had to run a single migration that changed and needed to be re-run independently of all other migrations. Fire up the console and do this:
>> require 'db/migrate/your_migrations.rb'
=> ["YourMigrations"]
>> YourMigrations.up
=> etc... as the migration runs
>> YourMigration.down
More usefully this could be put into a rake task etc.