我有以下迁移文件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
,而跳过以前未回滚的其他任何内容。
而且,如果您想不按顺序迁移单个迁移,则还有一个相反的db:migrate:up
:
rake db:migrate:up VERSION=20100905201547
rake db:migrate:down VERSION=20100905201547
将回滚特定文件。
要查找所有迁移的版本,可以使用以下命令:
rake db:migrate:status
或者,仅迁移文件名的前缀就是您需要回滚的版本。
有关迁移,请参见Ruby on Rails 指南条目 。
要回滚上一次迁移,您可以执行以下操作:
rake db:rollback
如果要回滚特定版本的迁移,应执行以下操作:
rake db:migrate:down VERSION=YOUR_MIGRATION_VERSION
例如,如果版本为 20141201122027,则可以执行以下操作:
rake db:migrate:down VERSION=20141201122027
回滚该特定迁移。