ActiveRecord::RecordNotUnique em idx_tag_users_ix1: Como corrigir?

Continuando a discussão de SSO Quebrado - O URL ou recurso solicitado não pôde ser encontrado:

Tenho um problema semelhante:

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

Alguma ideia de como remover a chave duplicada?

Acho que é porque você tem tags com maiúsculas e minúsculas misturadas (você tem tag e Tag).

Isso está acontecendo em uma reconstrução ou em outro momento?

Acho que o que fazer é tentar reconstruir o índice e, em seguida, corrigir a capitalização das tags (se eu estiver certo sobre isso) ou simplesmente excluir uma das entradas duplicadas.

1 curtida

Hmmm… Dificilmente.

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

Aparentemente, apareceu no início deste mês. Suponho que foi após uma atualização.

Não sei como aconteceu, mas consegui remover tags duplicadas:

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

Para cada duplicata (fiz manualmente).

Obrigado, Jay!

Note que o sintoma foi resolvido, mas a causa não está nada clara.

:thinking: Suspeito que as notificações de grupo em tags, quando aplicadas retroativamente, não verificam entradas existentes @pfaffman

1 curtida

Esse é geralmente o caso nesses problemas duplicados de whatever.

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