【发布时间】:2019-03-31 19:18:15
【问题描述】:
我用列定义创建了一个模型
create_table :admin_authentication_tokens do |t|
t.integer :authentication_ttl
end
现在我想让authentication_ttl 不可为空。我试过这个迁移
change_column :admin_authentication_tokens, :authentication_ttl, :integer, null: false, default: 0
但出现错误
PG::NotNullViolation: ERROR: column "authentication_ttl" contains null values
我了解错误的含义,但我不想手动迁移模型。所以请给我一个用迁移文件迁移模型的方法。
【问题讨论】:
-
我找到了答案:
MyModel.where(authentication_ttl: nil).update_all(authentication_ttl: 0)
标签: ruby-on-rails ruby ruby-on-rails-5 database-migration