rails 技術ブログ

rails 技術ブログ

勉強したことをアウトプットしていきます

【rails】マイグレーションファイルを作成してNOT NULL制約を追加する

NOT NULL制約とは?

データベースの値にNULL(railsでいうnil)を格納したくない時、NOT NULL制約をつけておくと、NULLを保存できないようにしてくれます。


使い方

※既にデータベースが作成済みの場合のやり方です。


rails g migration <ファイル名>マイグレーションファイルを作成する。

$ rails g migration AddCommentsNotNull


db/migrate/xxxxxxxxxxxxxx_add_comments_not_nullというファイルが作成されている。こんな感じ↓

class AddCommntsNotNull < ActiveRecord::Migration[5.2]
  def change
  end
end


db/migrate/xxxxxxxxxxxxxx_add_comments_not_nullこのファイルにNOT NULL制約を追加する

class AddCommntsNotNull < ActiveRecord::Migration[5.2]
  def change
    change_column_null :board, :comment, false
    # change_column_null :テーブル名, :カラム名, false
  end
end

change_column_nullはActive Recordが提供しているメソッドの一つで、上記のようにマイグレーションファイルの中で使用することができます。


■参考にした記事

Active Record マイグレーション - Railsガイド

現場で使える Ruby on Rails 5速習実践ガイド | 大場寧子, 松本拓也, 櫻井達生, 小田井優, 大塚隆弘, 依光奏江, 銭神裕宜, 小芝美由紀 |本 | 通販 | Amazon