ActiveRecord::RecordNotUnique su idx_tag_users_ix1: Come risolvere?

Continuando la discussione da SSO rotto - L’URL o la risorsa richiesta non è stata trovata:

Ho un problema simile:

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

Qualche idea su come rimuovere la chiave duplicata?

Penso che sia perché hai tag con maiuscole miste (hai tag e Tag).

Questo succede durante una ricostruzione o in un altro momento?

Penso che la cosa da fare sia provare a ricostruire l’indice e poi correggere le maiuscole dei tag (se ho ragione su questo) o semplicemente eliminare una delle voci duplicate.

Hmmm… Difficilmente.

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"]

Apparentemente è apparso all’inizio di questo mese. Suppongo sia stato dopo un aggiornamento.

Non so come sia successo, ma sono riuscito a rimuovere i tag duplicati:

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

Per ogni duplicato (l’ho fatto manualmente).

Grazie Jay!

Si noti che il sintomo è risolto, ma la causa non è affatto chiara.

:thinking: Sospetto che le notifiche di gruppo sui tag, quando applicate retroattivamente, non controllino le voci esistenti @pfaffman

Di solito è così per questi problemi duplicati di whatever.