我有一个迁移文件db\migrate\20100905201547_create_blocks.rb。
如何具体回滚该迁移文件?
我有一个迁移文件db\migrate\20100905201547_create_blocks.rb。
如何具体回滚该迁移文件?
当前回答
我发现这些步骤最有用。
执行rails db:migrate:status命令查看状态。然后,您将对想要删除的迁移有一个很好的了解。
然后执行rails db:rollback命令将修改的内容逐一恢复。这样做之后,您可以再次检查状态,以充分自信。
下一步,如果您想删除或删除。执行rails d migration <migration_name>。这将清理您创建的版本。
完成这些之后,您可以继续进行新的更改。
其他回答
如果你使用的是Ruby on Rails 3
步骤:1(检查最后一次迁移)
bundle exec rake db:migrate:status
步骤:2(回滚上一次迁移)
bundle exec rake db:rollback
现在,您可以逐个安全地恢复迁移。
对于特定的迁移
Rails d migration <migration_name>
用于恢复多次迁移
bundle exec rake db:rollback STEP=n
其中n是要回滚的迁移次数。
例如:bundle exec rake db:rollback STEP=5
如果您想从上次迁移中恢复,请使用rake db:rollback命令。它对我很有效!
您可以使用rake db:rollback和不同的选项来回滚迁移。语法将根据您的需求有所不同。
如果您只想回滚最后一次迁移,那么可以使用这两种方法中的任何一种
rake db:rollback
or
rake db:rollback STEP=1
如果你想要一次回滚迁移数量,那么你只需传递一个参数:
rake db:rollback STEP=n
其中n是迁移到回滚的次数,从最近一次迁移开始计算。
如果你想要回滚到一个特定的迁移,那么你应该在下面传递迁移的版本:
rake db:migrate:down VERSION=xxxxx
其中XXXXX是迁移的版本号。
回滚上次迁移:
# rails < 5.0
rake db:rollback
# rails >= 5.0
rake db:rollback
# or
rails db:rollback
回滚最近n次迁移
# rails < 5.0
rake db:rollback STEP=2
# rails >= 5.0
rake db:rollback STEP=2
# or
rails db:rollback STEP=2
回滚特定的迁移
# rails < 5.0
rake db:migrate:down VERSION=20100905201547
# rails >= 5.0
rake db:migrate:down VERSION=20100905201547
# or
rails db:migrate:down VERSION=20100905201547
要回滚所有的迁移到一个特定的版本(例如20181002222222),使用:
rake db:migrate VERSION=20181002222222
(注意,这里使用的是db:migrate,而不是其他答案中的db:migrate:down。)
假设指定的迁移版本比当前版本更老,这将回滚到指定版本之前的所有迁移,但不包括指定版本。
例如,如果rake db:migrate:status初始显示:
(... some older migrations ...)
up 20181001002039 Some migration description
up 20181002222222 Some migration description
up 20181003171932 Some migration description
up 20181004211151 Some migration description
up 20181005151403 Some migration description
运行:
rake db:migrate VERSION=20181002222222
会导致:
(... some older migrations ...)
up 20181001002039 Some migration description
up 20181002222222 Some migration description
down 20181003171932 Some migration description
down 20181004211151 Some migration description
down 20181005151403 Some migration description
参考:只迁移或恢复某些迁移