42710: duplicate_object
PostgreSQL¿Qué significa?
El objeto que se está creando (rol, tipo, restricción, extensión, esquema, nombre de índice, etc.) ya existe. PostgreSQL no permite un segundo objeto con el mismo nombre/definición.
¿Por qué ocurre?
Un comando como CREATE ROLE, CREATE TYPE, CREATE EXTENSION o ADD CONSTRAINT se ejecutó cuando ya existía un objeto con el mismo nombre. Suele deberse a un script ejecutado dos veces, migraciones no idempotentes o dos sesiones concurrentes que intentan crear el mismo objeto.
Cómo solucionarlo
Compruebe si el objeto existe (pg_roles para roles, pg_type para tipos, pg_extension para extensiones). Escriba las migraciones de forma idempotente: use CREATE ... IF NOT EXISTS donde esté disponible, o ejecute primero DROP ... IF EXISTS. Ante un conflicto de restricciones, renombre la restricción existente o elimínela y vuelva a crearla.