Recentemente configurei um servidor Discourse, após passar um tempo em um teste (trydiscourse.com). Ao configurá-lo, baixei um backup dos dados do nosso teste do trydiscourse.com e consegui restaurar esses dados em nosso Discourse auto-hospedado.
Cerca de uma semana depois, quando o teste estava terminando, baixei outro backup do trydiscourse.com e tentei restaurar. Desta vez, a restauração falhou. Aqui estão os logs:
[2022-03-05 01:31:08] [INICIADO]
[2022-03-05 01:31:08] 'Joaquin' iniciou a restauração!
[2022-03-05 01:31:08] Marcando restauração como em execução...
[2022-03-05 01:31:08] Verificando se /var/www/discourse/tmp/restores/default/2022-03-05-013108 existe...
[2022-03-05 01:31:08] Copiando arquivo para o diretório tmp...
[2022-03-05 01:31:08] Descompactando arquivo, isso pode levar algum tempo...
[2022-03-05 01:31:08] Extraindo arquivo de dump...
[2022-03-05 01:31:08] Validando metadados...
[2022-03-05 01:31:08] Versão atual: 20220220234155
[2022-03-05 01:31:08] Versão restaurada: 20220223161000
[2022-03-05 01:31:08] EXCEÇÃO: Você está tentando restaurar uma versão mais recente do esquema. Você deve migrar primeiro!
[2022-03-05 01:31:08] /var/www/discourse/lib/backup_restore/meta_data_handler.rb:31:in `validate'
/var/www/discourse/lib/backup_restore/restorer.rb:112:in `validate_backup_metadata'
/var/www/discourse/lib/backup_restore/restorer.rb:43: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-03-05 01:31:08] Tentando reverter...
[2022-03-05 01:31:08] Não foi necessário reverter
[2022-03-05 01:31:08] Limpando coisas...
[2022-03-05 01:31:08] Removendo o diretório tmp '/var/www/discourse/tmp/restores/default/2022-03-05-013108'...
[2022-03-05 01:31:08] Marcando restauração como concluída...
[2022-03-05 01:31:08] Notificando 'Joaquin' sobre o fim da restauração...
Pelo que entendi até agora em minha pesquisa, o “esquema” que a exceção diz que eu deveria “migrar primeiro!” tem a ver com o banco de dados que o Discourse usa.
Procurei no Discourse Meta e não vi ninguém falando sobre isso. Também atualizei o Discourse para a versão mais recente e tentei restaurar novamente, mas o resultado foi o mesmo. Dei uma olhada nos arquivos do Discourse para ver se havia alguma ferramenta relevante que pudesse ajudar, mas não vi nada promissor.
Minha melhor suposição no momento é que, durante essa semana após configurar nosso Discourse auto-hospedado, algo foi alterado em nosso fórum de teste no trydiscourse.com.
Minhas perguntas são:
- Como posso fazer a migração que o erro sugere?
- O que exatamente causou essa falha na restauração? Isso é algo que aconteceria normalmente (não durante uma transição de teste para auto-hospedado)?
Obrigado antecipadamente por qualquer ajuda com isso! ![]()