0
1

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 3 years have passed since last update.

rails db:migrateでエラーが出た((StandardError: An error has occurred, this and all later migrations canceled:)時の対処法

Last updated at Posted at 2020-10-11

rails db:migrate でエラーが出ることがあります。私の場合は何故かちょいちょい何かしらのエラーが出るので対処法を調べてみました。(私自身ruby,rails共に初学者です。この記事は初学者の方の参考になればという思いと、私の学習のために執筆しています。)

== 20201011010946 CreatePosts: migrating ======================================
-- create_table(:posts)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::DuplicateTable: ERROR:  relation "posts" already exists

(つづく)

##rails db:migrateでエラーが出る原因は?
今回のStandardErrorに関しては、migrateを実行したが実行中に何らかの原因でエラーが起きてしまい、テーブルは作成されているけどmigtate事態は未実行扱いとなっている状態。

つまり、システム側のちょっとしたエラーで中断された状態って感じだと思います。

しかし、エラー文には/post_bootstrap_app/db/migrate/20201011010946_create_posts.rb:3:in `change'などと、あたかもそこにミスがあるかのように書かれていて「俺、そんなとこいじってへんのやけど?」状態となり、一瞬混乱します。

##rails db:migrateでエラー(StandardError)が出た時の対処方法

rails db:migrate:reset
※migrateの実行を一旦リセット

rails db:migrate
※改めてrails db:migrateを実行

対処方法を私なりに少し調べてみたのですが、中断されたmigrateを一旦リセットでなかったことにして、再度migrateでやり直せば上手くいくとのことで、この方法を実際に実行してみました。

その結果、、、何事もなかったかのようにdb:migrateに成功しました!

##今回のまとめ
しょっぱなのデータベース作成時にエラーが出たら「まだ大して何も記述していないのに何故にエラー!?」と混乱するのは初学者あるあるだと思います。

しかし、この簡単な方法1つで解決されることもあるのでお困りの方は試してみてください。少しでも参考になれば幸いです。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?