Rails

rails モデル、テーブルの削除

モデルを作成し、マイグレーションしてテーブルができた後に
モデル、テーブルを削除したいとき。

unitpriceというモデルを作成し、unitprcesというテーブルが出来上がった状態で、
このモデル、テーブルを削除する場合を記載する。

rails バージョン

$ rails -v
Rails 5.0.7

まず、
「rails destroy model unitprice」
でモデルを作成時にできたファイルを削除する。

 $ rails destroy model unitprice
Running via Spring preloader in process 21471
      invoke  active_record
      remove    db/migrate/20181007144100_create_unitprices.rb
      remove    app/models/unitprice.rb

次に

「rails generate migration drop_table_unitprices」

でテーブル削除用のマイグレーションファイルを作成する。
(drop_table_unitpricesの部分は任意の名前で、何でも良い)

$ rails generate migration drop_table_unitprices
Running via Spring preloader in process 21357
      invoke  active_record
      create    db/migrate/20181007145047_drop_table_unitprices.rb

出来上がったマイグレーションファイルに

class DropTableUnitprices < ActiveRecord::Migration[5.0]
  def change
    drop_table :unitprices  ■この行を追加(:unitpricesの部分に削除したいテーブル名を記載)
  end
end

rails db:migrate
でマイグレーションするとテーブルが削除される。

 $ rails db:migrate
== 20181007145047 DropTableUnitprices: migrating ==============================
-- drop_table(:unitprices)
   -> 0.0027s
== 20181007145047 DropTableUnitprices: migrated (0.0034s) =====================

-Rails