如何从Rails关联自动创建外键?最好的解决方案应该从Rails关联生成Rails数据库迁移。
答案 0 :(得分:3)
为此你可以使用immigrant
宝石
看看https://github.com/jenseng/immigrant
从他们的主页github上复制/粘贴:
<强>用法强>
rails generate immigration AddKeys
这将创建一个名为AddKeys的迁移,它将为任何缺少的外键提供add_foreign_key语句。移民通过评估模型中的关联来推断缺失的移民(例如belongs_to,has_many等)。只会添加丢失的密钥;现有的永远不会被改变或删除。
复制/粘贴结束
正如所说,它将创建一个迁移...不会挂钩到其他任何东西,以便在你的新迁移中自动检测到有一个外键并将添加它。
答案 1 :(得分:0)
schema_plus(https://github.com/SchemaPlus/schema_plus)会自动添加外键。我已经使用它多年了,但希望现在使用Rails 4.2的原生外键支持,自动钩子也可以在某些时候使用。与此同时,这款宝石效果很好。