#背景
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 TABLEtasks
ADDuser_id
int
これは、すでにuser_id
というカラムが存在していて
重複したカラムは追加できないことを示している。
Duplicate
= 「重複」ということ。
#解決策
rails db:migrate:reset
を実施する。
ただし、これはあくまで開発環境の場合。
###リンク