Restauração do Discourse falha com erro de relação já existente

Por uma série de eventos infelizes, parece que não consigo restaurar a partir do meu último backup completo.

A história completa será contada em breve, mas, no momento, o problema que estou enfrentando ocorre durante a restauração do backup, que gera este erro:

Migrando o banco de dados…
EXCEPTION: rake db:migrate
Falha na migração do banco de dados.
rake aborted!
StandardError: Ocorreu um erro, e todas as migrações posteriores foram canceladas: (StandardError)

PG::DuplicateTable: ERROR: a relação “gamification_leaderboard_scores” já existe

Isso parece ser um problema relacionado aos meus plugins, mas apreciaria ajuda para decifrar os logs e encontrar uma solução que permita que a restauração funcione.

De qualquer forma, é isso que aconteceu.

Mais cedo hoje, realizei uma atualização do Discourse para a versão 2026.5.0-latest b0873d3ecd, que introduziu uma mudança incompatível que fez meu tema principal parar de funcionar. Eu deveria ter verificado a compatibilidade antes de atualizar.

Em pânico, pensei que seria capaz de restaurar a partir do meu último backup para reverter para uma versão do Discourse compatível com o tema. Antes da restauração, fiz um backup completo, pensando que, se algo desse errado, eu teria o maior número possível de pontos de restauração.

Bem, algo deu errado durante essa primeira restauração, e o Discourse voltou à ativa sem os últimos 15 dias de conteúdo. Investigando mais a fundo, encontrei um tópico no Meta que sugeria renomear o arquivo de backup de 2026-04-28-033449-v20260420014648.sql.gz para 2026-04-28-033449-v20260407093145.sql.gz. Não tenho certeza do motivo pelo qual isso funcionou, mas pelo menos me trouxe de volta ao backup de ontem.

Ainda preciso restaurar a partir do meu último backup completo feito esta manhã, que é o que está gerando o erro mostrado no início.

Isso já aconteceu com alguns outros plugins. De alguma forma, uma migração criou a tabela, mas o sistema de migração não reconhece que ela foi executada.

Não sei explicar isso com clareza suficiente para qualquer pessoa. De forma geral, você interromperia a restauração antes que ela execute as migrações (existe uma opção no comando de restauração para isso) e excluiria a tabela, creio eu. Se isso fizer sentido, ou quase fizer sentido, você talvez consiga resolver com ajuda de https://ask.discourse.com/

Se isso não ajudar e você estiver com pressa e tiver orçamento, pode perguntar no canal Marketplace ou me enviar um e-mail. Se você não estiver com pressa ou não tiver orçamento, há uma chance de alguém explicar o que fazer de uma forma que você consiga entender.