マイグレーションファイルの "NO FILE" 解決法

NO FILE解決の備忘録

 

チーム開発で、pullして

rails db:migrate:status実行したら、NO FILE が出た。

 

Status   Migration ID    Migration Name

--------------------------------------------------

   up     20200724104133  Devise create users

   up     20200724113342  Create addresses

   up     20200724122248  Create profiles

   up     20200805042059  Create brands

  down    20200805084757  Create items

  down    20200805104151  Create images

   up     20200806042032  ********** NO FILE **********

   up     20200806042046  ********** NO FILE **********

 

 

1. NO FILEを適当なファイルに置き換える

 touch db/migrate/20200806042032_hoge.rbで置き換えて、

 rails db:migrate:statusで確認。

 

Status   Migration ID    Migration Name

--------------------------------------------------

   up     20200724104133  Devise create users

   up     20200724113342  Create addresses

   up     20200724122248  Create profiles

   up     20200805042059  Create brands

  down    20200805084757  Create items

  down    20200805104151  Create images

   up     20200806042032  Hoge ← 変わってる

   up     20200806042046  ********** NO FILE **********

 

2. 作成されたマイグレーションファイルに記述する。

  class Hoge < ActiveRecord::Migration[6.0]
    def change
    end
  end

 

3. rails db:migrate:down VERSION=20200806042032

 現在、upになってるので、上記のコマンドでdownに変える。

 

Status   Migration ID    Migration Name

--------------------------------------------------

   up     20200724104133  Devise create users

   up     20200724113342  Create addresses

   up     20200724122248  Create profiles

   up     20200805042059  Create brands

  down    20200805084757  Create items

  down    20200805104151  Create images

  down    20200806042032  Hoge ← downに変わった

   up     20200806042046  ********** NO FILE **********

 

4. 同様にもう一つの NO FILE も置き換える。

 

Status   Migration ID    Migration Name

--------------------------------------------------

   up     20200724104133  Devise create users

   up     20200724113342  Create addresses

   up     20200724122248  Create profiles

   up     20200805042059  Create brands

  down    20200805084757  Create items

  down    20200805104151  Create images

  down    20200806042032  Hoge

  down    20200806042046  Hoge2

 

5. 置き換えたファイルは必要ないので削除

 補足:削除しなくても動作には影響しない。

 

6. rails db:migrateして終了