##削除の流れ(まとめ)
1、マイグレーションファイルを復活
2、復活したマイグレーションファイルにRailsのバージョンを記載
3、マイグレーションファイルをdown statusに変更
4、マイグレーションファイルを削除
5、完了
詳細を以下に記載します。
##状況確認(ターミナル)
% bundle exec rails db:migrate:status
省略
up 20200514113847 Add sessions table
up 20200514143503 Change item buyer id to not null
up 20200515081250 ********** NO FILE **********
up 20200516055352 Rename size column to items
down 20200516063953 Rename condition column to items
down 20200516074758 Rename postage payer column to items
##ファイル復元(ターミナル)
ターミナルにてstatusコマンドで確認したIDを元に、以下を記述します。
% vim db/migrate/20200515081250_tmp.rb
vimファイルに以下をコピペします。
( i で挿入モード → 以下をコピぺ → escで挿入モード終了 → :wq で保存終了)
class Tmp < ActiveRecord::Migration
def change
end
end
この時点でdown statusに変更しようとすると
% bundle exec rails db:migrate:down VERSION=20200515081250
エラーが起きます。
rails aborted!
StandardError: An error has occurred, all later migrations canceled:
Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:
##復活したマイグレーションファイルにRailsのバージョンを記載
原因はマイグレーションファイルがrailsのバージョンに対応していないことが原因のようです。
バージョンを記述します。
20200515081250_tmp.rb
class Tmp < ActiveRecord::Migration[5.2] #⬅︎[5.2]を追加
def change
end
end
##マイグレーションファイルをdown statusに変更(ターミナル)
% bundle exec rails db:migrate:down VERSION=20200515081250
ターミナルにてdownされているか確認
% bundle exec rails db:migrate:status
省略
up 20200514113847 Add sessions table
up 20200514143503 Change item buyer id to not null
down 20200515081250 Tmp
up 20200516055352 Rename size column to items
down 20200516063953 Rename condition column to items
down 20200516074758 Rename postage payer column to items
down 20200516090645 Rename prefecture code column to items
down 20200516101833 Add preparation day id to items
##削除
% rm -rf db/migrate/20200515081250_tmp.rb
消去出来ているかステータスを確認します。
% bundle exec rails db:migrate:status
消去出来ています。
up 20200514113847 Add sessions table
up 20200514143503 Change item buyer id to not null
up 20200516055352 Rename size column to items
down 20200516063953 Rename condition column to items
down 20200516074758 Rename postage payer column to items
down 20200516090645 Rename prefecture code column to items
down 20200516101833 Add preparation day id to items