一からRuby on Rails備忘録

マイグレーションでNot Null制約を設定

作成済みのテーブルのカラムに対し、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

モバイルバージョンを終了