【Rails】NO FILEのマイグレーションファイルを削除する方法

## やりたいこと

マイグレーションファイルを確認したところ、完全に削除されていないマイグレーションファイルファイル(NO FILE)がたくさんあることに気づいた。
NO FILE状態のマイグレーションファイルを完全に削除したい。

## 解決方法
ターミナルで以下を実行

```
rails db:migrate:status
```
マイグレーションファイル一覧が表示される。
今回は一番上のマイグレーションファイルを削除することにする。(マイグレーションIDが20211112062400のファイル)


```
Status   Migration ID    Migration Name
--------------------------------------------------
   up     20211112062400  ********** NO FILE **********
   up     20211112141152  ********** NO FILE **********
   up     20211113070815  ********** NO FILE **********
   up     20211120123020  ********** NO FILE **********
   up     20211201082728  ********** NO FILE **********
   up     20211203073311  ********** NO FILE **********
   up     20211211052422  Create messages
   up     20211215073022  ********** NO FILE **********
   up     20211216131616  ********** NO FILE **********
   up     20211217053015  ********** NO FILE **********
   up     20211223073833  Devise create admin users
   up     20211223073838  Create active admin comments
   up     20211224044540  Drop table users
   up     20211224053115  Devise create users
   up     20211224081811  Add column to users
```
左側のStatusに注目。全てupと表示されていることがわかる。
すでに実行済みのマイグレーションファイルはupと表示されるので、全てのファイルは実行済みの状態である。
upの状態のままだと削除で傷、upからdownに切り替える必要がある。コマンド上で

```
rails db:migrate:down VERSION=マイグレーションID
```
を実行すればdownになるのだが、今はファイル名がNO FILEになっているので、新たに削除用のマイグレーションファイルを作成する必要がある。削除したいマイグレーションファイルのマイグレーションIDをコピーし、

```
touch db/migrate/20211112062400_hoge.rb
```
を実行。（hogeはダミーネームなので、名前は適当でOK）

作成されたマイグレーションファイルはの中身は空なので、以下を記述。

```ruby:20211112062400_hoge.rb
class Hoge < ActiveRecord::Migration[6.0]
  def change
  end
end
```
次に、**$ rails db:migrate:status**を実行し、マイグレーションファイル名がNO FILEから**Hoge**に変更されていることを確認。


```
Status   Migration ID    Migration Name
--------------------------------------------------
   up     20211112062400  Hoge
   up     20211112141152  ********** NO FILE **********
   up     20211113070815  ********** NO FILE **********
   up     20211120123020  ********** NO FILE **********
   up     20211201082728  ********** NO FILE **********
   up     20211203073311  ********** NO FILE **********
   up     20211211052422  Create messages
   up     20211215073022  ********** NO FILE **********
   up     20211216131616  ********** NO FILE **********
   up     20211217053015  ********** NO FILE **********
   up     20211223073833  Devise create admin users
   up     20211223073838  Create active admin comments
   up     20211224044540  Drop table users
   up     20211224053115  Devise create users
   up     20211224081811  Add column to users
```
これでマイグレーションIDを指定してupからdownに切り替えることができる。
以下のコマンドを入力すると、

```
rails db:migrate:down VERSION=20211112062400
```
これでdown状態にすることができる。

```
Status   Migration ID    Migration Name
--------------------------------------------------
  down    20211112062400  Hoge
   up     20211112141152  ********** NO FILE **********
   up     20211113070815  ********** NO FILE **********
   up     20211120123020  ********** NO FILE **********
   up     20211201082728  ********** NO FILE **********
   up     20211203073311  ********** NO FILE **********
   up     20211211052422  Create messages
   up     20211215073022  ********** NO FILE **********
   up     20211216131616  ********** NO FILE **********
   up     20211217053015  ********** NO FILE **********
   up     20211223073833  Devise create admin users
   up     20211223073838  Create active admin comments
   up     20211224044540  Drop table users
   up     20211224053115  Devise create users
   up     20211224081811  Add column to users
```

最後に以下のコマンドを実行して、マイグレーションファイルを削除する。

```
rm -rf db/migrate/20211112062400_hoge.rb
```
**$ rails db:migrate:status**を実行すると、

```
Status   Migration ID    Migration Name
--------------------------------------------------
   up     20211112141152  ********** NO FILE **********
   up     20211113070815  ********** NO FILE **********
   up     20211120123020  ********** NO FILE **********
   up     20211201082728  ********** NO FILE **********
   up     20211203073311  ********** NO FILE **********
   up     20211211052422  Create messages
   up     20211215073022  ********** NO FILE **********
   up     20211216131616  ********** NO FILE **********
   up     20211217053015  ********** NO FILE **********
   up     20211223073833  Devise create admin users
   up     20211223073838  Create active admin comments
   up     20211224044540  Drop table users
   up     20211224053115  Devise create users
   up     20211224081811  Add column to users
```
完全に削除された！
##まとめ
マイグレーションファイルはただ手動で削除してもローカルデータに残ったままで、完全に削除するには今回のような操作を行う必要があるので、DB関連のファイルはより慎重に扱う必要があると感じました。。
まだ多くのNO FILEが残っているので、上記の手順で削除していこうと思います！

Qiita初投稿なので、見づらい部分があるかと思いますが、同じ箇所でつまづいている方に参考になれば幸いです！