Answers:
对于Rails 4 +,nates的答案(使用change_column_null)更好。
预发布4,请尝试change_column。
IrreversibleMigration
可能不是您想要的。
您也可以使用change_column_null:
change_column_null :table_name, :column_name, false
如果您在新创建的迁移脚本/方案上使用它,则可以通过以下方法定义它
class CreateUsers < ActiveRecord::Migration[5.2]
def change
create_table :users do |t|
t.string :name, null: false # Notice here, NOT NULL definition
t.string :email, null: false
t.string :password, null: false
t.integer :created_by
t.integer :updated_by
t.datetime :created_at
t.datetime :updated_at, default: -> { 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP' }
end
end
end
:limit
约束),则在使用时需要重复这些属性change_column
,否则它们将丢失。因此,我更喜欢使用change_column_null