42710: duplicate_object
PostgreSQL意味
作成しようとしているオブジェクト (ロール、型、制約、拡張機能、スキーマ、インデックス名など) は既に存在する。PostgreSQL は同じ名前/定義の 2 つ目のオブジェクトを許可しない。
原因
同名のオブジェクトが既に存在する状態で、CREATE ROLE、CREATE TYPE、CREATE EXTENSION、ADD CONSTRAINT などのコマンドが実行された。通常、スクリプトの 2 回実行、冪等でないマイグレーション、または 2 つの同時セッションが同じオブジェクトを作成しようとしたことが原因。
対処方法
オブジェクトが存在するか確認する (ロールは pg_roles、型は pg_type、拡張機能は pg_extension)。マイグレーションを冪等に記述する: 利用可能であれば CREATE ... IF NOT EXISTS を使用するか、先に DROP ... IF EXISTS を実行する。制約の競合の場合は、既存の制約の名前を変更するか、削除して再作成する。