我刚加载了一个数据库转储,不仅创建了表,并且在这些表中加载了数据,还进行了大量的迁移。
运行剩余的迁移后,运行rake db:migrate:status
告诉我每次迁移的状态为UP
,但迁移实际上并没有完成他们应该做的事情。
例如,我有一个迁移创建了一个名为notes
的表。它已被提升,表notes
不存在。所以我不得不redo
进行此迁移,而是在self.down
方法中注释掉代码。
我的问题是:即使在数据库中尚未创建它尝试创建的表,迁移如何处于UP
状态。或者我想,我之前加载的db哑,填充schema_migrations
表的方式是Rails认为大部分迁移都已启动,但实际上并非如此。
现在,我是否需要手动完成每次迁移rake db:migrate:redo VERSION=xxxxxxx
,还是有更好的解决方案?