rails開発中に PG::DuplicateTable: ERROR: relation “messages” already exists とエラーが出た時の対処です。私の場合は、試行錯誤していて、migrateを実行していたけれど、安易に $ git checkout -f をしたことで、次回のmigrateができなくなりました。
エラー内容
1 2 3 4 5 6 7 8 |
$ rails db:migrate == 20181022032718 CreateMessages: migrating =================================== -- create_table(:messages) rails aborted! StandardError: An error has occurred, this and all later migrations canceled: PG::DuplicateTable: ERROR: relation "messages" already exists |
schema.rbを見るとmessagesテーブルが残っています。
対処法
messageテーブルを削除するためのマイグレーションファイルを作成します。
1 |
$ rails g migration delete_messages |
内容は以下のように、drop_table :messagesとします。
db/migrate/20181022050439_delete_messages.rb
1 2 3 4 5 |
class DeleteMessages < ActiveRecord::Migration[5.2] def change drop_table :messages end end |
これで $ rails db:migrate すると無事、解決しました!
以上です!! ご覧いただき、ありがとうございました!!