作成済みのテーブルのカラムに対し、Not Null制約を追加する設定です。
●change_column_null
○構文
change_column_null(table_name, column_name, null, default = nil)
・3番目の引数(null)にfalseを指定すると、カラムにNOT NULL制約を設定。trueを設定するとカラムからNOT NULL制約を除去。
●マイグレーション実行例
ここでは、markersというテーブルのいくつかのカラムにNot Null制約を追加しています。
①マイグレーションファイル作成
rails generate migration change_notnull_to_markers
②マイグレーションファイルにカラム変更を設定
def up
change_column_null :markers, :name, false
change_column_null :markers, :address, false
change_column_null :markers, :lat, false
change_column_null :markers, :lng, false
end
def down
change_column_null :markers, :name, true
change_column_null :markers, :address, true
change_column_null :markers, :lat, true
change_column_null :markers, :lng, true
end
end
③マイグレーション実行
$ rake db:migrate