我有以下迁移文件db\migrate\20100905201547_create_blocks.rb
。
我怎样才能专门回滚这个迁移文件?
rake db:rollback STEP=1
是一种方法,如果你想回滚的迁移是最后一次应用的话。你可以用 "1 "代替你想回溯的迁移次数。
比如说。
rake db:rollback STEP=5
也会回滚所有后来发生的迁移(4、3、2和1)。
要回滚所有迁移到(并包括)目标迁移,请使用:(这个更正的命令是在所有评论指出原帖中的错误后添加的)。
rake db:migrate VERSION=20100905201547
为了只回滚一个特定的迁移(不按顺序),请使用。
rake db:migrate:down VERSION=20100905201547
请注意,这不会回滚任何中间的迁移 -- 只有列出的那个迁移。如果这不是你想要的,你可以安全地运行rake db:migrate
,它将只重新运行那个迁移,而跳过任何其他没有回滚的迁移。
rake db:migrate:down VERSION=20100905201547
将回滚特定的文件。
要查找所有迁移文件的版本,可以使用这个命令。
rake db:migrate:status
或者,只要迁移文件名的前缀就是你需要回滚的版本。
参见[Ruby on Rails指南条目](http://guides.rubyonrails.org/migrations.html#running-specific-migrations)中关于迁移的内容。
你可以使用rake db:rollback
和不同的选项来回滚你的迁移。语法将根据你的要求而不同。
如果你只想回滚上次的迁移,那么你可以使用
rake db:rollback
或
rake db:rollback STEP=1
如果你想一次性回滚一定数量的迁移,那么你只需传递一个参数。
rake db:rollback STEP=n
其中n
是要回滚的迁移数量,从最近的迁移开始计算。
如果你想回滚到某个特定的迁移,那么你应该在下面传递该迁移的版本。
rake db:migrate:down VERSION=xxxxx
其中XXXX是迁移的版本号。