ActiveRecord::RecordNotUnique на idx_tag_users_ix1: Как исправить?

Продолжение обсуждения из SSO Broken - The requested URL or resource could not be found:

У меня похожая проблема:

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

Есть идеи, как удалить дублирующийся ключ?

Я думаю, это потому, что у вас теги с разным регистром (у вас есть tag и Tag).

Это происходит при перестроении индекса или в другое время?

Я думаю, что нужно попытаться перестроить индекс, а затем либо исправить регистр тегов (если я прав насчёт этого), либо просто удалить одну из дублирующихся записей.

Хм… Вряд ли это так.

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

Похоже, это появилось в начале этого месяца. Думаю, это было после обновления.

Не знаю, как это произошло, но я смог удалить дублирующиеся теги:

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

Для каждого дубликата (делал это вручную).

Спасибо, Джей!

Обратите внимание, что симптом устранён, но причина совершенно не ясна.

:thinking: Я подозреваю, что групповые уведомления по тегам при ретроспективном применении не проверяют наличие существующих записей @pfaffman

Обычно так бывает в этих дублирующих проблемах с whatever.