背景
Railsにてアプリを作成し、うまくいかないので過去の時点のコミットまで戻ったりしていた。
その後、再度モデルなどを構築している際に、PendingMigrationErrorというエラーがでた。
要因
これは、新たに作成されたマイグレーションファイルがあるのに、
まだ適用されていない状況であることを示している。
場合によっては、rails db:migrateを実施したが、
エラーによって適用さrていないことが考えられる。
再度rails db:migrateを実施してエラーが発生していないかを確認する。
rails db:migrateを実施するとターミナルにずらずらのエラー文が表示され、
エラーとなったマイグレーションファイルが示されている。
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Duplicate column name 'user_id': ALTER TABLEtasksADDuser_idint
これは、すでにuser_idというカラムが存在していて
重複したカラムは追加できないことを示している。
Duplicate= 「重複」ということ。
解決策
rails db:migrate:resetを実施する。
ただし、これはあくまで開発環境の場合。