Erreur lors de la restauration : impossible de créer un index unique

Je déplace notre communauté vers un nouveau fournisseur.

CREATE INDEX
CREATE INDEX
ERROR:  could not create unique index "index_incoming_referers_on_path_and_incoming_domain_id"
DETAIL:  Key (path, incoming_domain_id)=(/m/search, 989) is duplicated.
CONTEXT:  parallel worker
EXCEPTION: psql failed: CONTEXT:  parallel worker
/var/www/discourse/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'
script/discourse:149:in `restore'

J’ai essayé quelques pistes précédentes sur cette erreur :

discourse=# select * from incoming_referers where path LIKE '%/search/' ORDER BY incoming_domain_id;
 id | path | incoming_domain_id
----+------+--------------------
(0 rows)

Quelqu’un peut-il m’aider à résoudre cette erreur ?

1 « J'aime »

Il s’agit probablement d’un index corrompu. Quelqu’un devra supprimer ou corriger les entrées en double. Comment utiliser amcheck pour vérifier l’intégrité des index PostgreSQL (corruption) pourrait aider. Voir aussi Can't restore due to corrupt indexes (with some clues on how to deal with corrupt indexes).

1 « J'aime »