42710: duplicate_object
PostgreSQLNe demek?
Oluşturulmaya çalışılan nesne (rol, tip, constraint, uzantı, şema, index adı vb.) zaten mevcut. PostgreSQL aynı ada/tanıma sahip ikinci bir nesne oluşturulmasına izin vermez.
Neden olur?
CREATE ROLE, CREATE TYPE, CREATE EXTENSION, ADD CONSTRAINT gibi bir komut, aynı adlı bir nesne halihazırda varken çalıştırıldı. Genellikle betiğin iki kez çalıştırılması, idempotent olmayan migration'lar ya da eşzamanlı iki oturumun aynı nesneyi oluşturmaya çalışması nedeniyle olur.
Nasıl çözülür?
Nesnenin var olup olmadığını kontrol edin (rol için pg_roles, tip için pg_type, uzantı için pg_extension). Migration'ları idempotent yazın: mümkün olan yerde CREATE ... IF NOT EXISTS kullanın ya da önce DROP ... IF EXISTS yapın. Constraint çakışmasında mevcut constraint'i yeniden adlandırın veya kaldırıp yeniden oluşturun.