我有这个AchRelationship
模型:
class AchRelationship < ApplicationRecord
belongs_to :account
end
还有一个Account
模型:
class Account < ApplicationRecord
has_one :ach_relationship, dependent: :destroy
end
在我的schema.rb
文件中,我看到了这一行,这对我来说很有意义:
add_foreign_key "ach_relationships", "accounts"
但是,我遇到的问题是,每当我运行rake db:migrate
添加新迁移时,我的schema.rb
文件中的这一行就会被删除。即使没有新的迁移,它也会发生。这发生在我们团队中的某些成员上,但并非我们所有人都如此。与其他成员一起,每当他们运行rake db:migrate
时,如果该行消失了,他们将重新添加该行。所以最终发生的是,我们不断看到该行被删除并重新添加到我们的PR中,而没人能弄清楚原因。
所以我的问题是,在建立数据库时,我和其他一些团队成员做了一些奇怪的事情吗?我们该怎么做才能解决此问题并防止其再次发生?感谢您的阅读!
答案 0 :(得分:2)
看看here
Active Record还将更新您的
db/schema.rb
文件以匹配数据库的最新结构。
这意味着您团队中的某人在该表ach_relationships
中具有不同的数据库属性。您可以要求该人通过迁移或通过GUI工具手动添加forign_key
。实际上,当有人在某些分支中进行某些迁移并在分支测试后忘记回滚时,就会一直发生这种情况。