我刚才加载了一个数据库转储文件,它不仅创建了表格并将数据加载到这些表格中,还升级了很多迁移。运行剩余的迁移后,运行
rake db:migrate:status
告诉我每个迁移的状态都是UP
,但实际上迁移并没有完成它们应该做的事情。例如,我有一个创建名为notes
的表的迁移。它已经被升级了,但是表格notes
不存在。所以我不得不重新执行此迁移,但注释掉self.down
方法中的代码。我的问题是:即使它试图创建的表尚未在数据库中创建,迁移如何处于UP
状态。或者我猜,我之前加载的数据库转储文件以某种方式填充了schema_migrations
表,Rails认为大多数迁移都已升级,但实际上它们并没有。现在,我需要手动运行rake db:migrate:redo VERSION=xxxxxxx
来重新执行每个迁移,还是有更好的解决方案?