Rails 4.2外键

Rails 4.2新增支持添加和删除外键(在迁移中),例如:

# add a foreign key to `articles.author_id` referencing `authors.id` add_foreign_key :articles, :authors 

我不明白的是:这是怎么回事

 add_foreign_key :articles, :authors 

不同于此:

 add_column :articles, :author_id, :integer 

谢谢你的任何澄清!

不同之处在于:

 add_foreign_key :articles, :authors 

实际上会生成这个:

 ALTER TABLE "articles" ADD CONSTRAINT articles_author_id_fk FOREIGN KEY ("author_id") REFERENCES "authors" ("id"); 

虽然这个:

 add_column :articles, :author_id, :integer 

将生成:

 ALTER TABLE "articles" ADD COLUMN author_id INT(11); 

两者都不同,因为add_foreign_key只会添加一个外键约束,而add_column会添加一列而不是约束。