#このエラーの意味とは
PGはpagesのことみたいです。
Duplicateとは複製の意味です。Columnはカラムのことです。
これはテーブルに同じカラムが複製されている。
同じ名前のカラムが存在しているのはダメだよと怒られているエラーです。
#どんな時エラーがでた?
railsでadd_〇〇_to_articles.rbの内容を書き直そうと思い、 rails g migration add_〇〇_to_articles 〇〇:string
実行
これはカラム追加コマンド```です。
⚫︎コマンドの説明はこの記事に載せてあります。
https://qiita.com/Hashimoto-Noriaki/items/c9d31577fd647ee8d08f
その後、 bundle exec rspec --tag focus (rspecのテスト)```を実行しました。
(このコマンドはテストをしたい内容を絞ってやるときに実行します。)
するとエラーが出て、
#省略
bin/rails:4:in `<main>'
Tasks: TOP => db:test:load => db:test:purge
(See full trace by running task with --trace)
Migrations are pending. To resolve this issue, run:
rails db:migrate RAILS_ENV=test
No examples found.
このコマンドを実行
rails db:migrate RAILS_ENV=test
を実行。するとPG::DuplicateColumn: ERROR:
のエラーが出てきました。
#解決策
先にお伝えしますが、実際自分が解決したやり方は違うので下で書くことと違います。
なぜ違うのかというと人によってエラーが出た状況が違うからです。
一般的には
rails db:migrate:reset
を使うといいみたいです。
このコマンドはデータベースを作成した時、migrationを実行してデータベースを作った後に、
作ったデータベースをmigration実行前に戻すコマンドです。
rails db:resetだとデータベースごと消えてしまうのであまり推奨されないみたいです。
rails db:migrate:resetによってcreate(データベース作成)もされた状態で
空のデータベースの状態に戻せるので、またデータベースを構築していくことができます。
⚫︎参考記事
https://k-koh.hatenablog.com/entry/2020/05/29/174420
https://kirohi.com/rails_duplicate_error#i-4