Что такое: каскад в rails schema.rb и откуда он взялся?
После добавления другой миграции и случайного решения о переходе и миграции я проверил свой schema.rb
и увидел это
create_table "users", force: :cascade do |t|
Я еще не совершил эти изменения, и на удаленном я это
create_table "users", force: true do |t|
Теперь у меня есть каскад перед каждой таблицей. Что такое каскад и откуда оно взялось?
Ответы
Ответ 1
Документы объясняют, что :cascade
делает:
:force
- установите для параметра :cascade
также и зависимые объекты. По умолчанию false
.
Одна из причин, по которой вы можете видеть это, - это изменение в Rails 4.2 в SchemaDumper
, чтобы использовать :cascade
, примечания к выпуску.
Заметки о замене:
SchemaDumper
использует force: :cascade
на create_table
. Это позволяет перезагрузить схему, когда имеются внешние ключи.
Ответ 2
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table
: сила
Установите перед true
, чтобы удалить таблицу перед ее созданием. Установите значение :cascade
, чтобы также отбросить зависимые объекты. По умолчанию false
.