2016-11-08 23 views
3

每当我运行rake db:migrate时,它都会通过删除某个特定表上的外键来更新我的rails模式。我不明白为什么,我不知道如何防止这种情况发生。每当我运行rake数据库时,Rails Schema都会无意中更改:migrate

[1] http://imgur.com/BBssPdU

我怎样才能解决这个问题?我不能编写另一个迁移来重新添加引用,因为它会引发重复错误。

+0

'schema.rb'是根据数据库中的内容生成的,而不是基于您的数据库中的内容生成的。这表明你的数据库中没有这三个FK。直接检查数据库(即通过不带任何Rails的'mysql' CLI工具)并查看FK是否真的存在。 –

+0

将模式*与* FK一起使用,运行'rails db:schema:load'。 – ArtOfCode

回答

0

您能否发布完整的迁移文件?

另外,你有没有尝试回滚到使用rake db:rollback的最后一次迁移之前? (您也可以回滚几次迁移,请参见here

CARE!回滚可以删除数据库中的数据,所以如果你无法承受这种情况,那么这可能不是最好的解决方案。

相关问题