我正在查看一个生产服务器,它提供了来自rake db:migrate:status
的大量输出,如
database: important_production
Status Migration ID Migration Name
--------------------------------------------------
.
.
.
up 20140317065716 ********** NO FILE **********
up 20140317070243 Add userid to activities
.
.
.
我觉得这种“无文件”错误是不好的做法,因为它可以防止向下迁移。但是搞乱别人的生产机器也是不好的做法,不是吗。上面列出的这两个迁移,丢失的文件实际上已将其迁移删除,因为它与下一次向下迁移重复。
我的解决方法是登录生产机器上的db shell,然后运行:
DELETE FROM schema_migrations WHERE version = 20140317065716;
我不是100%这不会起作用,但我找不到任何有关修复rails应用程序迁移链的过程的支持文档。这里有什么建议,警告和最佳实践?