从 Rails 个关联创建外键

Create foreign keys from Rails associations

如何从 Rails 关联中自动创建外键?最佳解决方案应该从 Rails 关联生成 Rails 数据库迁移。

为此你可以使用 immigrant gem.
看看https://github.com/jenseng/immigrant

copy/paste 从他们的主页 github:

用法

rails generate immigration AddKeys

这将创建一个名为 AddKeys 的迁移,其中将包含 add_foreign_key 用于任何缺失外键的语句。 Immigrant 通过评估模型中的关联(例如 belongs_to、has_many 等)来推断缺失值。只会添加缺少的键;现有的永远不会被更改或删除。

copy/paste

结束

如前所述,它将创建一个迁移...不会挂接到任何其他内容以在您的新迁移中自动检测是否有外键并将其添加。

schema_plus (https://github.com/SchemaPlus/schema_plus) 将在添加迁移时自动添加外键。我已经使用它很多年了,但希望现在有了 Rails 4.2 的本地外键支持,自动挂钩也将在某个时候可用。与此同时,这个 gem 效果很好。