[ipboard.rb] ERRO: valor de chave duplicado viola a restrição de exclusividade "import_ids_pkey" (PG::UniqueViolation)

Olá, estou tentando importar um fórum IPB 3.4 usando ipboard.rb, recebi este erro com a importação de tópicos:

.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:56:in `exec': ERROR:  duplicate key value violates unique constraint \"import_ids_pkey\" (PG::UniqueViolation)
DETAIL:  Key (val)=(discussion#2264) already exists.

Eu deletei o tópico 2264 do banco de dados SQL e executei o script novamente, agora está tudo bem… mas perdi o tópico :sob: e outros 5 ou 6 tópicos importantes com o mesmo erro. O que está errado? Como posso importar esses tópicos?

Obrigado.

Talvez o script esteja usando o ID errado? Ou talvez a versão de onde você está vindo não seja o que o script espera.

Você não executou o script, depois excluiu os tópicos e tentou executá-lo novamente, certo?

Tive este problema apenas com 9 tópicos, todo o resto está ok, e eu sempre começo com um banco de dados recém-instalado, verifiquei com diferentes backups SQL e diferentes hosts. Nenhum erro encontrado no ipboard (índice, banco de dados, etc.).
Eu não entendo. :confused:

1 curtida

Parece algo não óbvio. Minha melhor suposição é algo como. . . bem. Eu não tenho uma melhor suposição.

Talvez a consulta esteja de alguma forma retornando esses tópicos duas vezes? Você pode tentar adicionar um .where ID=123 à consulta que está obtendo os tópicos para ver se ela está de alguma forma obtendo duas vezes e, em seguida, descobrir por quê.

Devo adicioná-lo ao arquivo ipboard.rb?

Eu olharia a consulta no script e a faria manualmente como descrevi e veria quais são os resultados.

Ok, eu encontrei! :sunglasses:
Obrigado por me direcionar para a solução. Olha, eu não sei por quê, mas várias postagens relacionadas a tópicos problemáticos tinham o campo new_topic = 1.

Observação: Eu editei manualmente os campos e tudo está ok agora.

1 curtida

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