我运行的上一次迁移因错误而未完成。它不能用rails db:rollback
(也不能用rake db:migrate:down VERSION=xxx
)还原,因为这些命令会尝试删除未创建的数据库(或者我为了解决问题而销毁的数据库)。
有没有办法切换到down
上次迁移的状态,并且它不会尝试影响数据库?
以下工作:编辑迁移文件,将change
方法重命名为up
,添加空down
方法,然后再次运行rails db:rollback
。尽管如此,我想知道是否有更好的解决方案。
(请注意,此问题不是关于cleaning up the failures,而是关于将上次迁移状态切换为down
。)
答案 0 :(得分:3)
您的数据库中应该有一个schema_migrations
表,其中包含一个version
列,其中包含迁移的数字部分。只需删除该行即可。