【问题标题】:Rails migration add a null: false column with an initial value that's not an ongoing defaultRails 迁移添加了一个 null: false 列,其初始值不是持续的默认值
【发布时间】:2020-07-16 22:33:03
【问题描述】:

我不喜欢这种迁移:

    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 是无效的,因为我有现有记录,并且我不想要任何默认值(迁移时除外)。

可以在一行代码中添加带有初始(但不是默认)值的列吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 rails-migrations


    【解决方案1】:

    “可以在一行代码中添加带有初始(但不是默认)值的列吗?”

    没有。但是,“change_column_null”可以在迁移中使用,第四个参数实际上是为空列设置一个值,而不改变数据库中的“默认值”。

    https://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column_null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 2015-08-12
      • 2014-01-16
      • 2011-11-08
      • 1970-01-01
      • 2019-12-31
      • 2016-09-08
      相关资源
      最近更新 更多