emailカラムのDEFAULT制約を消す
schema.rb
create_table "users", force: :cascade do |t|
- t.string "email", null: false, default: ""
+ t.string "email", null: false
end
class RemoveDefaultRestrictFromUsers < ActiveRecord::Migration[6.0]
def change
change_column_default :users, :email, from: "", to: nil
end
end
補足:from-toを省略した change_column_default :users, :email, nil
の書き方でもdefault制約を消すことはできたのですが、db:rollback
が失敗します。(元の値が分からなくなるため)
adminカラムの初期値をtrueからfalseに変える
schema.rb
create_table "users", force: :cascade do |t|
- t.string "admin", null: false, default: true
+ t.string "admin", null: false, default: false
end
class RemoveDefaultRestrictFromUsers < ActiveRecord::Migration[6.0]
def change
change_column_default :users, :admin, from: true, to: false
end
end
Railsでカラムのデフォルト値を変更する方法 - Qiita にもあるように、up
, down
を記述することなくrollbackできる書き方なので便利です