42710: duplicate_object
PostgreSQLWas bedeutet das?
Das anzulegende Objekt (Rolle, Typ, Constraint, Extension, Schema, Indexname usw.) existiert bereits. PostgreSQL erlaubt kein zweites Objekt mit demselben Namen bzw. derselben Definition.
Ursache
Ein Befehl wie CREATE ROLE, CREATE TYPE, CREATE EXTENSION oder ADD CONSTRAINT lief, während bereits ein Objekt mit demselben Namen existierte. Meist verursacht durch ein zweimal ausgeführtes Skript, nicht idempotente Migrationen oder zwei parallele Sessions, die dasselbe Objekt anlegen wollen.
Lösung
Prüfe, ob das Objekt existiert (pg_roles für Rollen, pg_type für Typen, pg_extension für Extensions). Schreibe Migrationen idempotent: Nutze, wo verfügbar, CREATE ... IF NOT EXISTS oder führe zuerst DROP ... IF EXISTS aus. Benenne bei einem Constraint-Konflikt den vorhandenen Constraint um oder lösche ihn und lege ihn neu an.