マイグレでいつもと違うエラーが起きたよ。 その2
ログ残しのため、記事を書いてます。
最初、schemaファイルのあるテーブルを消したいと思って マイグレーションファイルの中に以下のコマンドを打ちテーブルを消した。
class 〇〇< ActiveRecord::Migration[5.1] def change drop_table :〇〇 #消したいテーブル名 end end
これでスキーマファイルからケーブルが消えたけど
その後、マイグレのコマンドを打つと
〇〇テーブルがないよ
というエラーが連発した。
結構、このエラーを直すのに時間はかかったけど
原因
おそらく以下のようにテーブルを作成する前にadd_〇〇してしまったからだと思っています。
class AddBoardImageToBoard < ActiveRecord::Migration[5.2] def change add_column :boards, :board_image, :string end end
解決策
まずスキーマファイルにテーブルがあった状態に戻そうと git resetコマンドを使って元に戻した。 その後rails:db:resetのコマンドを打って そこから一からマイグレをやり直して解決しました。
今回の件で安易にスキーマファイルを消すと大変なことになると思い知らされました。
ちなみにrails db:resetとrails db:migration:resetの違いは 以下の記事にわかりやすく書いています。
参考