3
每当我运行rake db:migrate时,它都会通过删除某个特定表上的外键来更新我的rails模式。我不明白为什么,我不知道如何防止这种情况发生。每当我运行rake数据库时,Rails Schema都会无意中更改:migrate
我怎样才能解决这个问题?我不能编写另一个迁移来重新添加引用,因为它会引发重复错误。
每当我运行rake db:migrate时,它都会通过删除某个特定表上的外键来更新我的rails模式。我不明白为什么,我不知道如何防止这种情况发生。每当我运行rake数据库时,Rails Schema都会无意中更改:migrate
我怎样才能解决这个问题?我不能编写另一个迁移来重新添加引用,因为它会引发重复错误。
您能否发布完整的迁移文件?
另外,你有没有尝试回滚到使用rake db:rollback
的最后一次迁移之前? (您也可以回滚几次迁移,请参见here)
CARE!回滚可以删除数据库中的数据,所以如果你无法承受这种情况,那么这可能不是最好的解决方案。
'schema.rb'是根据数据库中的内容生成的,而不是基于您的数据库中的内容生成的。这表明你的数据库中没有这三个FK。直接检查数据库(即通过不带任何Rails的'mysql' CLI工具)并查看FK是否真的存在。 –
将模式*与* FK一起使用,运行'rails db:schema:load'。 – ArtOfCode