【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