マイグレーションファイルをいじる時はあれだけ気をつけろと言ったのに、、、
なぜロールバックする前にマイグレーションファイルを削除したんや俺ぇぇぇぇ!!!
ということで解決方法
#【現状】
rails db:migrate:status
を叩くとNO FILE
と出ます。
ターミナル
Status Migration ID Migration Name
--------------------------------------------------
up 20191123230155 Create tweets
up 20191124013808 Devise create users
up 20191127115414 ********** NO FILE **********
down 20191124030050 Create comments
・upがmigrate実行後
・downがmigrate実行前
upなのにNO FILEはよろしくない
#【その1】
Migration ID
をコピーし新たにマイグレーションファイルを作成。
ターミナル
$ touch db/migrate/20191127115414_manbow.rb
どうせ削除するから名前は適当
20191127115414_manbow.rb
class Manbow < ActiveRecord::Migration[5.2]
def change
end
end
もう一度 `$ rails db:migrate:status`を叩くと名前が付与されている。
ターミナル
Status Migration ID Migration Name
--------------------------------------------------
up 20191123230155 Create tweets
up 20191124013808 Devise create users
up 20191127115414 Manbow
down 20191124030050 Create comments
#【その2】
VERSION
にMigration ID
を代入し、upをdownに変える
ターミナル
$ rails db:migrate:down VERSION=20191127115414
`$ rails db:migrate:status`でdownに変わっていることを確認。
ターミナル
Status Migration ID Migration Name
--------------------------------------------------
up 20191123230155 Create tweets
up 20191124013808 Devise create users
down 20191127115414 Manbow
down 20191124030050 Create comments
あとはマイグレーションファイルを削除するだけ。
マイグレーションファイルを削除する際は十分に注意しましょう。
参考
ではまた!