ActiveRecord::PendingMigrationError のエラーの対処

このエラーを検索してこのブログにたどり着いた人のために、解説しておこうと思う。

Migrations are pending

上記のような文があると思うが、migrationsが保留になっている。という意味。

つまり、 rails db:maigration を行ったなら、その手前の作業で、問題が起きたということ。

私の場合は以下のエラーが出ていた。

SQLite3::SQLException: no such table: movies: ALTER TABLE "movies" ADD "evaluation" float

つまり原因は、カラム追加するコマンドを打ったがそのときmovieというテーブルで作成させたが、そんなテーブルはないよと言っている。

つまり、カラム追加の作業に原因があった。

であれば、対処は一つ、db/migrate/   にあるマイグレートファイルの、最近いじったファイルを開き、そのファイルでは、間違えて打ってしまったテーブルが記載されている。それを既存のテーブルに書き換えて、migrationすると、エラーは消えます。

f:id:lekam:20210711010215p:plain