在不更改架构的情况下还原迁移

时间:2016-12-14 01:48:25

标签: ruby-on-rails ruby database

我运行的上一次迁移因错误而未完成。它不能用rails db:rollback(也不能用rake db:migrate:down VERSION=xxx)还原,因为这些命令会尝试删除未创建的数据库(或者我为了解决问题而销毁的数据库)。

有没有办法切换到down上次迁移的状态,并且它不会尝试影响数据库?

以下工作:编辑迁移文件,将change方法重命名为up,添加空down方法,然后再次运行rails db:rollback。尽管如此,我想知道是否有更好的解决方案。

(请注意,此问题不是关于cleaning up the failures,而是关于将上次迁移状态切换为down。)

1 个答案:

答案 0 :(得分:3)

您的数据库中应该有一个schema_migrations表,其中包含一个version列,其中包含迁移的数字部分。只需删除该行即可。