【问题标题】:Rails Schema changes unintentionally whenever I run rake db:migrate每当我运行 rake db:migrate 时,Rails Schema 都会意外更改
【发布时间】:2017-03-21 12:29:48
【问题描述】:

每当我运行 rake db:migrate 时,它​​都会通过删除一个特定表上的外键来更新我的 rails Schema。我不明白为什么,也不知道如何防止这种情况发生。

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

我该如何解决这个问题?我无法编写另一个迁移来重新添加引用,因为它会引发重复错误。

【问题讨论】:

  • schema.rb 是根据数据库中的内容生成的,而不是迁移中的内容。这表明您的数据库中没有这三个 FK。直接检查数据库(即通过mysql CLI 工具,看不到 Rails)并查看 FK 是否真的存在。
  • 使用模式with FK,运行rails db:schema:load

标签: mysql ruby-on-rails ruby


【解决方案1】:

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

另外,您是否尝试过使用rake db:rollback 回滚到上次迁移之前? (你也可以回滚多个迁移,见here

小心!回滚可能会从您的数据库中删除数据,因此如果您无法承受这种情况,那么这可能不是最佳解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多