1. ホーム
  2. ruby-on-rails

[解決済み】RailsマイグレーションでNULL可能なカラムをNULL不可能に変更する方法は?

2022-04-11 08:18:15

質問

以前のマイグレーションで日付カラムを作成し、それをNullableに設定しました。今、それをNULL不可能に変更したいです。データベース内にNULL行があると仮定して、どのようにこれを行うのでしょうか?現在NULLであれば、これらのカラムをTime.nowに設定しても問題ないです。

どのように解決するのですか?

マイグレーションで行うのであれば、おそらくこのようにできるはずです。

# 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