Désolé de remonter ce sujet une nouvelle fois, j’ai rencontré une erreur très étrange :
discourse=# REINDEX SCHEMA CONCURRENTLY public;
ERROR: could not create unique index "index_tags_on_name_ccnew"
DETAIL: Key (name)=(chronicillness) is duplicated.
Je suppose que cela peut être résolu grâce à la solution suggérée plus haut par @riking, mais je n’arrive pas à comprendre comment adapter la syntaxe à mon cas.
Ainsi, vous avez deux options si vous rencontrez cette erreur :
Vous pouvez contourner le problème… dans ce cas, la table tags contient une ligne en double avec le nom chronicillness
Effectuez une requête dans l’explorateur de données pour rechercher les lignes : select * from tags where name = 'chronicillness
Supprimez le doublon :
./launcher enter app
rails c
Tag.find_by(id: ID_TROUVÉ_DANS_L_EXPLORATEUR_DE_DONNÉES).destroy
Si vous disposez d’une sauvegarde de votre base de données et de détails que vous souhaitez partager avec Peter… partagez-les avec Peter, soit en privé, soit sur la liste de diffusion PG.
J’ai donc une sauvegarde générée par Discourse de PostgreSQL 10. Cela sera-t-il utile ? Puis-je simplement extraire la partie PostgreSQL de l’archive et l’envoyer ?
Je ne suis pas sûr… Ce dont Peter a probablement besoin, c’est que vous arrêtiez votre base de données et que vous copiiez l’intégralité du contenu du dossier contenant la base de données.
Le meilleur moyen de le savoir est de lui envoyer un e-mail.
La méthode de récupération recommandée dans de tels cas consiste à supprimer l’index invalide et à réessayer d’exécuter REINDEX CONCURRENTLY. L’index concurrent créé pendant le traitement porte un nom se terminant par le suffixe ccnew, ou ccold s’il s’agit d’une ancienne définition d’index que nous n’avons pas réussi à supprimer. Les index invalides peuvent être supprimés à l’aide de DROP INDEX, y compris les index toast invalides.
Je ne connais pas de méthode pour vérifier si ces index sont valides, mais si les supprimer est une option, je serai ravi de les supprimer et de les reconstruire.
EDIT : la commande DROP INDEX fonctionnera-t-elle comme suggéré ici ?