fhe
(Florian)
Março 26, 2025, 6:39am
1
Estou recebendo este erro ao tentar atualizar via
./launcher rebuild app
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERRO: não foi possível criar o índice único "index_discourse_solved_solved_topics_on_answer_post_id" (ActiveRecord::RecordNotUnique)
DETALHE: Chave (answer_post_id)=(201795) está duplicada.
Alguma ideia de como resolver esse problema?
thoka
(Thomas Kalka)
Março 26, 2025, 8:00am
3
Exclua um dos registros SolvedTopic via console do rails:
DiscourseSolved::SolvedTopic.where(answer_post_id:201795).last.destroy
1 curtida
fhe
(Florian)
Março 26, 2025, 9:16am
4
Obrigado. Tentei acessar esses, mas estou recebendo
NameError: constante SolvedTopic não inicializada
Alguma outra ideia?
fhe
(Florian)
Março 26, 2025, 9:32am
5
Conectei-me diretamente ao banco de dados e excluí o registro com o answer_post_id duplicado de discourse_solved_solved_topics.
Tudo certo agora. Obrigado novamente pela sua rápida resposta!
1 curtida
thoka
(Thomas Kalka)
Março 26, 2025, 12:59pm
6
Hm. discourse-solved foi atualizado recentemente .
Há uma chance de que este erro tenha sido lançado durante a migração do banco de dados.
fhe
(Florian)
Março 26, 2025, 2:19pm
7
Sim, isso aconteceu durante a migração do banco de dados.
thoka
(Thomas Kalka)
Março 26, 2025, 5:04pm
8
Parece ter sido corrigido com este patch:
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.
4 curtidas
fhe
(Florian)
Março 26, 2025, 5:07pm
9
Excelente! Obrigado pelo aviso — marquei sua postagem como solução.
2 curtidas
nat
(Natalie T)
Fechado
Abril 9, 2025, 7:25am
10
Este tópico foi fechado automaticamente 10 dias após a última resposta. Novas respostas não são mais permitidas.