Restaurar para Novo Host

Configurei um novo host para ter um ambiente de ‘staging’. Recriei a mesma instalação do Discourse com o que deveria ser a mesma versão. Estou executando a versão: 2.8.2.

Primeiro comentário, a partir da versão 2.8.2, o tamanho do meu backup caiu de 282MB para cerca de 90MB. Não sei por quê, mas vou prosseguir com alguma inteligência adicionada que estou aproveitando.

Baixei o último arquivo do meu fórum e fiz o upload para o armazenamento local no novo ambiente de staging.

A restauração falha devido a:

[2022-02-27 19:41:18] ALTER TABLE
[2022-02-27 19:41:18] ALTER TABLE
[2022-02-27 19:41:18] Migrando o banco de dados...
[2022-02-27 19:43:00]
[2022-02-27 19:43:00] Reconectando ao banco de dados...
[2022-02-27 19:43:00] Recarregando configurações do site...
[2022-02-27 19:43:00] Desabilitando e-mails de saída para usuários não administradores...
[2022-02-27 19:43:02] Desabilitando modo somente leitura...
[2022-02-27 19:43:02] Limpando cache de categoria...
[2022-02-27 19:43:02] Recarregando traduções...
[2022-02-27 19:43:02] Remapeando uploads...
[2022-02-27 19:43:02] Remapeando 'https://forum.geekbeacon.org' para 'https://forum-staging.geekbeacon.org'
[2022-02-27 19:43:08] Restaurando uploads, isso pode levar algum tempo...
[2022-02-27 19:43:36] EXCEPTION: 8 posts não foram remapeados para o novo URL de upload S3. A migração S3 falhou para o banco de dados 'default'.
[2022-02-27 19:43:36] /var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:87:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:66:in `migrate'
/var/www/discourse/lib/file_store/s3_store.rb:317:in `copy_from'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:62:in `restore_uploads'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:44:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:61:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:23:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:36:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2022-02-27 19:43:36] Tentando reverter...
[2022-02-27 19:43:36] Revertendo...
[2022-02-27 19:43:36] Limpando...
[2022-02-27 19:43:36] Eliminando funções do schema discourse_functions...
[2022-02-27 19:43:36] Removendo diretório temporário '/var/www/discourse/tmp/restores/default/2022-02-27-194051'...
[2022-02-27 19:43:36] Despausando sidekiq...
[2022-02-27 19:43:36] Marcando restauração como concluída...
[2022-02-27 19:43:36] Notificando 'csgeek' sobre o fim da restauração...

1 curtida

Este é o seu problema. Talvez usar o mesmo bucket S3 e usar o mesmo bucket? Talvez verifique se a configuração oculta que se chama algo como “download S3 no backup” está ativada. Você precisará pesquisar ou procurar no código-fonte o nome da configuração.

Ou talvez você precise verificar se o restante dos seus uploads no site de produção estão no S3.

1 curtida

Não tenho S3 configurado. Imagino que o servidor antigo tenha alguns dados antigos que não foram mapeados para um local S3 válido.

Voltei ao servidor antigo e tenho 2 buckets configurados, 1 para backups e 1 para mídia. Segui o guia e configurei o AWS S3, incluindo o CDN.

Quando executo rake uploads:migrate_to_s3, que falhou, segui com um posts:rebake e isso parece ter reduzido o número de erros, mas ainda falha:

Por favor, note que a migração para S3 atualmente não é reversível!
[CTRL+c] para cancelar, [ENTER] para continuar

Migrando uploads para S3 para 'default'...
Enviando arquivos para S3...
 - Listando arquivos locais
 => 208 arquivos
 - Listando arquivos S3
. => 978 arquivos
 - Sincronizando arquivos para S3
................................................................................................................................................................................................................
Atualizando os URLs no banco de dados...
Removendo imagens otimizadas antigas...
Marcando todos os posts contendo lightboxes para rebake...
15 posts foram marcados para rebake
rake abortou!
FileStore::ToS3MigrationError: 1 posts não foram remapeados para o novo URL de upload S3. A migração S3 falhou para o banco de dados 'default'.
/var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:87:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:66:in `migrate'
/var/www/discourse/lib/tasks/uploads.rake:123:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:102:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:90:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:100:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:96:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tarefas: TOP => uploads:migrate_to_s3
(Veja o rastreamento completo executando a tarefa com --trace)

Existe alguma maneira de executar migrate_to_s3 em modo verboso para identificar o post que é o culpado?