fhe
(Florian)
26.Март.2025 06:39:29
1
При попытке обновить через
./launcher rebuild app
возникает следующая ошибка:
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: could not create unique index "index_discourse_solved_solved_topics_on_answer_post_id" (ActiveRecord::RecordNotUnique)
DETAIL: Key (answer_post_id)=(201795) is duplicated.
Есть какие-то идеи, как решить эту проблему?
thoka
(Thomas Kalka)
26.Март.2025 08:00:42
3
Удалите одну из записей SolvedTopic через консоль Rails:
DiscourseSolved::SolvedTopic.where(answer_post_id:201795).last.destroy
fhe
(Florian)
26.Март.2025 09:16:20
4
Спасибо. Я попытался получить к ним доступ, но получаю
NameError: uninitialized constant SolvedTopic
Есть ещё какие-то идеи?
fhe
(Florian)
26.Март.2025 09:32:34
5
Теперь я подключился к базе данных напрямую и удалил запись с дублирующимся answer_post_id из discourse_solved_solved_topics.
Всё в порядке. Ещё раз спасибо за быстрый ответ!
thoka
(Thomas Kalka)
26.Март.2025 12:59:30
6
Хм. плагин discourse-solved был недавно обновлён .
Возможно, эта ошибка возникла во время миграции базы данных.
fhe
(Florian)
26.Март.2025 14:19:23
7
Да, это произошло во время миграции базы данных.
thoka
(Thomas Kalka)
26.Март.2025 17:04:38
8
Похоже, что проблема исправлена в этом патче:
committed 02:21PM - 26 Mar 25 UTC
We are seeing some errors when migrating and adding indexes on `answer_post_id`.…
```
#<StandardError:"An error has occurred, all later migrations canceled:\n\nPG::UniqueViolation: ERROR: could not create unique index \"index_discourse_solved_solved_topics_on_answer_post_id\"\nDETAIL: Key (answer_post_id)=(13006) is duplicated.\n">
```
This PR modifies the earlier migration, and also adds one before the addition of indexes to remove duplicates.
fhe
(Florian)
26.Март.2025 17:07:31
9
Отлично! Спасибо за предупреждение — я отметил ваш ответ как решение.