よこのじ(@yokonoji_work)です。
Ruby on Railsでデータベースのテーブルのカラムを削除する方法をご紹介します。
カラムの追加については「Ruby on Railsでデータベースのテーブルにカラムを追加する方法」を参考にしてください。
カラム削除のためのマイグレーションファイルを作成する
カラムを削除するという変更を加えるためのマイグレーションファイルを生成します。
$ rails g migration Removeカラム名Fromテーブル名 カラム名:データ型
ここでは、次のような構造のtodosテーブルから「limit_date」というdate型のカラムを削除してみます。
create_table "todos", force: :cascade do |t| t.text "state" t.text "task" t.date "limit_date" t.datetime "created_at", null: false t.datetime "updated_at", null: false end
この場合は、次のようなコマンドでマイグレーションファイルを生成します。
$ rails g migration RemoveLimit_dateFromTodos limit_date:date
そうすると、/db/migrate/20190817120505_remove_limit_date_from_todos.rb というマイグレーションファイルが現れます。
class RemoveLimitDateFromTodos < ActiveRecord::Migration[5.2] def change remove_column :todos, :limit_date, :date end end
この内容を反映させるために rails db:migrate を実行します。
$ rails db:migrate
/db/schema.rb を見てみると、指定したカラムを削除できているのが分かります。
create_table "todos", force: :cascade do |t| t.text "state" t.text "task" t.datetime "created_at", null: false t.datetime "updated_at", null: false end
以上、Ruby on Railsでデータベースのテーブルのカラムを削除する方法でした。
カラム追加・削除の方法を知っておけば、テーブルまわりを触るのに抵抗がなくなりますよね。
[itemlink post_id=”2920″]