状態
$rails db:migrate 実行後のマイグレーションファイルを削除してしまい、NO FILEのファイルが出来た。
解決方法
1、migrateの状態確認。
ターミナル
rails db:migrate:status
するとこうのように表示される↓
ターミナル
Status Migration ID Migration Name
--------------------------------------------------
up 20200602094458 Create messages
up 20200604080747 ********** NO FILE **********
2、NO FILEのMigration IDをコピペし、ダミーファイルを作成。(hogeのとこは任意)
ターミナル
touch db/migrate/20200604080747_hoge.rb
3、ダミーファイルの中身を作成。
20200604080747_hoge.rb
class Hoge < ActiveRecord::Migration[5.2]
def change
end
end
4、Migration Nameが付与されていることを確認。
ターミナル
rails db:migrate:status
するとこうのように表示される↓
ターミナル
Status Migration ID Migration Name
--------------------------------------------------
up 20200602094458 Create messages
up 20200604080747 Hoge
5、削除したいマイグレーションファイルのStatusをdownにする。($ rails db migrate 実行前に戻す)
ターミナル
rails db:migrate:down VERSION=20200604080747
downになったか確認
ターミナル
rails db:migrate:status
↓
ターミナル
Status Migration ID Migration Name
--------------------------------------------------
up 20200602094458 Create messages
down 20200604080747 Hoge
6、downを確認したら削除
Status Migration ID Migration Name
--------------------------------------------------
up 20200602094458 Create messages
マイグレーションファイルの扱い要注意ですね。
かなりの時間ロスです。