DBのカラムにて、Not null制約をつけるのを忘れていたことに気がついた
もとのマイグレーションファイルを修正するのは、よくないとのことなので
また新たにNot null制約を付与するマイグレーションファイルを作成する
rails g migration ChangeCloumnsNotnullAddUsers
マイグレーションファイルを作成
方法は2種類あるらしい!
##change_columnメソッド
db/migrate/***_change_columns_add_notnull_on_users.rb
class ChangeColumnsAddNotnullOnUsers < ActiveRecord::Migration[5.2]
def change
change_column :users, :name, :string, null: false
change_column :users, :email, :string, null: false
change_column :users, :password, :string, null: false
end
end
false
→ NotNull制約を付与する
true
→ NotNull制約を付与しない
change_column :テーブル名, :カラム名, :データ型, null: false or true
change_columnメソッドを使うのが一般的だったりするのかな…!
##change_column_null
db/migrate/***_change_columns_add_notnull_on_users.rb
class ChangeColumnsAddNotnullOnUsers < ActiveRecord::Migration[5.2]
def change
change_column_null :users, :name, false
change_column_null :users, :email, false
change_column_null :users, :password, :string, false
end
end
false
→ NotNull制約を付与する
true
→ NotNull制約を付与しない
change_column_null :テーブル名, :カラム名, false or true
こっちは、記述量が少なくて直感的な気がする!
change_column_default
メソッドもあるらしいが、追々調べていこう
##参考記事
Railsガイド
https://qiita.com/MOssan-32/items/89afc9e4375215f8b5d2
https://qiita.com/akinov/items/852fe789fe98a44350a9