注意点
- MySQLなどの
DB
にどうやってenum型カラムを作るか、というお話 -
model
のenum型パラメータの話ではない - SQLのコマンドで直接DBにカラムを作るのではなく、Railsのmigrationファイルでカラムを作るよ
前提条件
- Gem
"rails", "7.0"
- 対象テーブル名:
users
- 追加したいenum型のカラム名:
user_category
ソースコード
db/migrate/yyyymmddHHMMSS_add_column_to_users.rb
class AddColumnsToUsers < ActiveRecord::Migration[7.0]
def up
execute <<-SQL
ALTER TABLE users ADD user_category ENUM('normal', 'employee') COMMENT 'ユーザー種別';
SQL
end
def down
remove_column :users, :user_category
end
end
説明
- これで、
'normal', 'employee'
のいずれかしか登録できないカラムが追加される -
down
ブロックにより、rails db:rollback
すればuser_category
カラムのみ削除される
コメントを書く方法も込みでわかりやすい記事がないか探したが、すぐには見当たらなかったので記事化しておく。