回滚ActiveRecord中的所有迁移

时间:2015-08-21 19:27:48

标签: ruby activerecord database-migration rails-migrations

如何删除/回滚已运行的所有迁移,而无需删除和设置数据库

rake db:rollback

只返回一个版本。我怎么能让它一直走?

3 个答案:

答案 0 :(得分:2)

一种方法是:

rake db:rollback STEP=10000000 

这几乎意味着黑客回过头来这么多步骤,迁移总是进入第0步。   另一种方式是:

  rake db:migrate VERSION=0

更多参考资料here.

答案 1 :(得分:0)

您可以运行$ rake db:migrate:status来查看所有迁移以及它们是处于up还是down状态。转到该列表中的第一个迁移并运行:

 rake db:rollback VERSION=version_id_shown_by_migrate_status_list_you_just_did

请注意,如果撤消所有迁移,则删除列或表时将丢失所有数据。然后,您可以通过正常的rake db:migrate

重新加载迁移

答案 2 :(得分:0)

要回滚所有迁移,请使用bin/rake:db reset。 请注意,如果无法回滚迁移,则rake db:reset可能会失败。

References here