0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PendingMigrationErrorの対処法

Last updated at Posted at 2018-09-16

#背景
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 TABLE tasks ADD user_id int

これは、すでにuser_idというカラムが存在していて
重複したカラムは追加できないことを示している。
Duplicate= 「重複」ということ。

#解決策
rails db:migrate:resetを実施する。
ただし、これはあくまで開発環境の場合。

###リンク

Rails: db:reset よりも db:migrate:reset を使うべき理由 (とその違い)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?