Rails 迁移添加一个 null: false 列,其初始值不是正在进行的默认值
Rails migration add a null: false column with an initial value that's not an ongoing default
我有一个我不喜欢的迁移:
add_column :employers, :address_line_1, :string
add_column :employers, :address_city, :string
add_column :employers, :address_postcode, :string
change_column_null :employers, :address_line_1, false, '123 default street'
change_column_null :employers, :address_city, false, 'Default City'
change_column_null :employers, :address_postcode, false, '123456'
使 add_column
行具有 null: false
是无效的,因为我有现有记录,并且我不想要任何默认值(除了在这次迁移时)。
能否在单行代码中为列添加初始值(但不是默认值)?
“可以在单行代码中为列添加初始值(但不是默认值)吗?”
没有。但是,“change_column_null”可以在迁移中使用,而第四个参数实际上是在不更改数据库中的“默认值”的情况下为空列设置一个值。
https://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column_null
我有一个我不喜欢的迁移:
add_column :employers, :address_line_1, :string
add_column :employers, :address_city, :string
add_column :employers, :address_postcode, :string
change_column_null :employers, :address_line_1, false, '123 default street'
change_column_null :employers, :address_city, false, 'Default City'
change_column_null :employers, :address_postcode, false, '123456'
使 add_column
行具有 null: false
是无效的,因为我有现有记录,并且我不想要任何默认值(除了在这次迁移时)。
能否在单行代码中为列添加初始值(但不是默认值)?
“可以在单行代码中为列添加初始值(但不是默认值)吗?”
没有。但是,“change_column_null”可以在迁移中使用,而第四个参数实际上是在不更改数据库中的“默认值”的情况下为空列设置一个值。
https://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column_null