什么是:级联在rails schema.rb中,它来自哪里?

在添加另一个迁移并偶尔决定删除和迁移后,我检查了我的schema.rb并看到了这个

create_table "users", force: :cascade do |t| 

我还没有承诺这个变化,并在遥远的我有这个

 create_table "users", force: true do |t| 

现在我已经在每张桌子的前面连成一片了。 什么是级联,它是从哪里来的?

该文档解释了什么:cascade确实 :

:force – 设置为:cascade以删除相关对象。 默认为false

你可能会看到这个的一个原因是SchemaDumper中的Rails 4.2的一个变化:cascade , release notes 。

有关更改的发行说明:

SchemaDumper使用force: :cascadecreate_table SchemaDumper 。 这样可以在外键已经存在的情况下重新加载模式。

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table

:force设置为true以在创build表之前删除表。 设置为:cascade以删除相关对象。 默认为false