ActiveRecord::RecordNotUnique sur idx_tag_users_ix1 : Comment corriger ?

Continuant la discussion de SSO cassé - L’URL ou la ressource demandée n’a pas pu être trouvée :

J’ai un problème similaire :

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "idx_tag_users_ix1"

Une idée sur la façon de supprimer la clé en double ?

Je pense que c’est parce que vous avez des balises qui mélangent casse (vous avez tag et Tag).

Est-ce que cela se produit lors d’une reconstruction ou à un autre moment ?

Je pense que la chose à faire est d’essayer de reconstruire l’index, puis soit de corriger la casse des balises (si j’ai raison à ce sujet), soit de supprimer l’une des entrées en double.

1 « J'aime »

Hmmm… Difficilement le cas.

Tag.all.pluck(:name)
=> ["welcome",
 "faq",
 "sysadmin",
 "offdem-0x03",
 "reference",
 "tutorial",
 "local-organization",
 "collective-data",
 "power-relations",
 "offdem-topic",
 "offdem-0x00",
 "offdem-0x01",
 "offdem-0x02",
 "discourse-plugin",
 "page",
 "how-to",
 "about",
 "offdem-0x04"]

Apparemment, il est apparu plus tôt ce mois-ci. Je suppose que c’était après une mise à niveau.

Je ne sais pas comment c’est arrivé, mais j’ai pu supprimer les tags en double :

TagUser.all.where(user_id: 80, tag_id:2).last.destroy

Pour chaque doublon (je l’ai fait manuellement).

Merci Jay !

Notez que le symptôme est résolu, mais la cause n’est pas du tout claire.

:thinking: Je soupçonne que les notifications de groupe sur les tags, lorsqu’elles sont appliquées rétroactivement, ne vérifient pas les entrées existantes @pfaffman

1 « J'aime »

C’est généralement le cas pour ces problèmes de whatever en double.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.