小编典典

如何在 Rails 迁移中将可为空的列更改为不可为空?

all

我在之前的迁移中创建了一个日期列,并将其设置为可为空。现在我想将其更改为不可为空。假设该数据库中有空行,我该怎么做?如果它们当前为空,我可以将这些列设置为
Time.now。


阅读 65

收藏
2022-06-20

共1个答案

小编典典

如果你在迁移中这样做,那么你可能会这样做:

# Make sure no null value exist
MyModel.where(date_column: nil).update_all(date_column: Time.now)

# Change the column to not allow null
change_column :my_models, :date_column, :datetime, null: false
2022-06-20