[Rails]my sqlのテーブルとmigrationファイルを削除した際に生じた不具合の解決手順


【前提】
Rails 6.0.3.1
ruby 2.6.3

現在、オリジナルアプリの製作中。
その際に誤って作ってしまった。users_artistsというテーブルとマイグレーションファイルを削除しようとした際に生じたエラー内容についてまとめてみた。

ターミナル.
% rails db:rollback STEP=5

・migrationファイルを削除する為にターミナルにてrollbackを実行。

ターミナル.
% rails db:migrate:status

・確認の為、statusを上記コマンドにて確認したところ、一箇所だけ不具合を発見

ターミナル.
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     000             ********** NO FILE **********
  down    20201014111144  Devise create users
  down    20201014111251  Devise create artists
  down    20201014121517  Create events
  down    20201020102544  Create bookmarks

↑一箇所だけstatusがupとなっており、ファイル名もなぜかNO FILEとして残ってしまった

↑上記はその際に残ってしまったschemaファイルの内容
・versionの表示が消えた状態でdownにならず残ってしまっていた
本来、このファイル名にはMigrationIDがあるはず
がここでは”000”となってしまっている

【エラーの解決手順】
①statusをdownにする為にdb/migrate配下に新しく名前を”000_create_users_artists.rb”としてmigrationファイルを作成。
他のmigrationファイルの名前と同様とするためにcreateを名前の先頭に付与して以下のように記述しました。

000_create_users_artists.rb
class CreateUsersArtists < ActiveRecord::Migration[6.0]
  def change
    create_table :users_artists do |t|
      t.integer :user_id
      t.integer :artist_id

      t.timestamps
    end
  end
end

②もう一度、rails db:migrate:statusを実行。下記のようにターミナル上にてup部分のMigrationNameがCreate users artistsに変わっている事が確認出来ました。

ターミナル.
Status   Migration ID    Migration Name
--------------------------------------------------
   up     000             Create users artists
  down    20201014111144  Devise create users
  down    20201014111251  Devise create artists
  down    20201014121517  Create events
  down    20201020102544  Create bookmarks

③再度、statusをdownにするために下記のコマンドにてファイル名を指定して実行。

ターミナル.
% rails db:migrate:down VERSION=000_create_users_artists.rb

④再度、指定したファイルのstatusがdownになっているか確認をして不要である000_create_users_artists.rbのファイルを削除すればOK!!

ターミナル.
 Status   Migration ID    Migration Name
--------------------------------------------------
  down    000             Create users artists
  down    20201014111144  Devise create users
  down    20201014111251  Devise create artists
  down    20201014121517  Create events
  down    20201020102544  Create bookmarks

⑤最後にrails db:migrateを実行してテーブルを再度、作成し直して終了。

※まとめ※
schemaファイルに誤って残った記述内容と削除する為に作成したファイル名やカラム名の記述内容を同じにしないとうまくデータが消せなかったのでかなり苦戦しました苦戦した事でかなり勉強になり、自身の強みにもなったので内容をまとめて投稿してみました。誰かの参考になれば幸いです!!