0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Rails] migrationファイルで、テーブルにenum型のカラムを追加する

Last updated at Posted at 2023-03-16

注意点

  • 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カラムのみ削除される

コメントを書く方法も込みでわかりやすい記事がないか探したが、すぐには見当たらなかったので記事化しておく。

0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?