注意点
- 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カラムのみ削除される
コメントを書く方法も込みでわかりやすい記事がないか探したが、すぐには見当たらなかったので記事化しておく。