AddしたColumnにNot Null制約を追加する
カラムにnot nullを追加する場合
<ターミナル >
rails g migration AddNotnullOnモデル名
<db/migrate/***>
def change
change_column_null :モデル名, :対象カラム名, false
end
過去にAddColumnToしてあるカラムにnot nullを追加する場合
上記の方法では、rails db:migrate時に
column "name" of relation "users" contains null values
と出てマイグレートされない(userモデルのnameカラムにnot nullを追加したい想定)
直訳すると、「users」モデルの「name」カラムには既に「null」が入っているから、not nullできませんよという意味
AddColumnした場合、デフォルトでnullが入ってしまう為にこのような問題が起こる
解決策としては、カラムにnullではない適当な値を入れて、not null設定をする
<db/migrate/***>
def change
change_column_null :モデル名, :対象カラム名, false, 0 ←"0"を入れてみた
end