Falha ao restaurar o banco de dados

Estava tentando restaurar meu backup em um novo servidor e alguns erros apareceram.

O log está aqui: Ubuntu Pastebin

O erro pode ser:

PG::UniqueViolation: ERROR:  could not create unique index "unique_index_categories_on_slug"
DETAIL:  Key (COALESCE(parent_category_id, '-1'::integer), slug)=(5, ) is duplicated.

Achei que pudesse ser um problema de banco de dados, mas não editei nada. Apenas baixei o backup em tar, mas restaurei de forma incorreta.

Por favor, ajude!

Existe outro tópico com um problema semelhante.

É um problema estranho.

Muitos de nós o resolvemos apenas continuando a tentar.

Tente várias vezes e, talvez, em uma delas você não tenha o erro.

Pode ser que seu problema seja diferente, mas ele se assemelha aos erros de banco de dados que tivemos durante a restauração.

Parece haver um bug nos scripts de restauração ou algum tipo de bug no sistema de banco de dados PostgreSQL utilizado.

Que solução mais estranha… FML
Será que é possível editar o arquivo SQL para deixá-lo normal?

Ou seja, existe alguma maneira de ignorar a chave duplicada?

E, depois que reconstruí para uma versão anterior ou uma versão beta, o log passou a mostrar:

EXCEPTION: Compression::Strategy::ExtractFailed[2019-10-16 07:53:52] /var/www/discourse/lib/compression/strategy.rb:89:in `block in extract_file'
/var/www/discourse/lib/compression/strategy.rb:85:in `open'
/var/www/discourse/lib/compression/strategy.rb:85:in `extract_file'
/var/www/discourse/lib/compression/strategy.rb:26:in `block (2 levels) in decompress'
/usr/local/lib/ruby/site_ruby/2.6.0/rubygems/package/tar_reader.rb:65:in `each'
/var/www/discourse/lib/compression/strategy.rb:18:in `block in decompress'
/var/www/discourse/lib/compression/tar.rb:26:in `get_compressed_file_stream'
/var/www/discourse/lib/compression/strategy.rb:15:in `decompress'
/var/www/discourse/lib/compression/pipeline.rb:26:in `block in decompress'
/var/www/discourse/lib/compression/pipeline.rb:24:in `each'
/var/www/discourse/lib/compression/pipeline.rb:24:in `reduce'
/var/www/discourse/lib/compression/pipeline.rb:24:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:141:in `decompress_archive'
/var/www/discourse/lib/backup_restore/restorer.rb:60:in `run'
/var/www/discourse/lib/backup_restore.rb:166:in `block in start!'
/var/www/discourse/lib/backup_restore.rb:163:in `fork'
/var/www/discourse/lib/backup_restore.rb:163:in `start!'
/var/www/discourse/lib/backup_restore.rb:22:in `restore!'
/var/www/discourse/app/controllers/admin/backups_controller.rb:119:in `restore'

Por que isso é um problema? Eu não alterei nada no arquivo tar.

Dê uma olhada em:

Muito obrigado por essa coisa de extração!

Você poderia me ajudar com o erro de chave duplicada? Ou há uma maneira de eu corrigir esse SQL no psql?

@daniel Acredito que a migração em FIX: Add unique index to prevent duplicate slugs for categories · discourse/discourse@c71da3f · GitHub precise garantir que os valores da coluna sejam únicos antes de criar o índice único.

@Rasin, Isso já deve estar corrigido a partir de:

Obrigado por trazer isso à nossa atenção e peço desculpas por qualquer inconveniente. Avise-nos se tiver outros problemas.

Sim, já te disse: é algo estranho.

Mas funcionou para vários de nós, como você pode ler aqui:

Não sei se sua situação é a mesma, já que o erro é semelhante, mas não exatamente igual.

@usulrasolas comentou que editou o script com comandos SQL para corrigi-lo.

Mas eu (e outros) não alteramos nada, apenas tentamos várias vezes.

É estranho, eu sei, mas pode haver problemas de tempo ou expiração de tempo envolvidos.
Não sabemos.
Os desenvolvedores estão analisando o caso.

Obrigado por todas as suas sugestões! Estamos ansiosos pelas novas atualizações.