DBAtlas · Атлас эксплуатации баз данных

42710: duplicate_object

PostgreSQL

Что это значит?

Создаваемый объект (роль, тип, ограничение, расширение, схема, имя индекса и т. д.) уже существует. PostgreSQL не допускает второго объекта с тем же именем/определением.

Почему возникает?

Команда CREATE ROLE, CREATE TYPE, CREATE EXTENSION или ADD CONSTRAINT и т. п. выполнена, когда объект с тем же именем уже существовал. Обычно вызвано двойным запуском скрипта, неидемпотентными миграциями или попыткой двух параллельных сеансов создать один и тот же объект.

Как исправить

Проверьте, существует ли объект (pg_roles для ролей, pg_type для типов, pg_extension для расширений). Пишите миграции идемпотентно: используйте CREATE ... IF NOT EXISTS, где доступно, или сначала выполняйте DROP ... IF EXISTS. При конфликте ограничений переименуйте существующее ограничение или удалите и создайте его заново.

Открыть в DBAtlas →

Ещё по этой СУБД