Este post é uma versão muito condensada das minhas últimas 24 horas, embora ainda não tenha funcionado, então também espero que alguém poste onde deu errado abaixo.
Minha atualização do Discourse falhou devido a uma chave duplicada, uma das minhas tags está duplicada. Para corrigir o problema da atualização, precisei fazer uma nova instalação do Discourse e, em seguida, carregar meu último backup, mas o recarregamento falha porque ele reclama da chave duplicada. Então, precisei entrar no backup para editar a tag ofensiva para algo diferente.
Por algum motivo, o backup recompactado com o problema da tag duplicada corrigido é significativamente menor do que o backup de onde veio, e falha quando tento restaurá-lo, então algo deu um pouco errado com o processo de recompactação.
1) Localizando Backups: Para localizar seus backups do Discourse, você pode usar o seguinte comando:
sudo find / -name "*.tar.gz"
Isso procurará em seu sistema por todos os arquivos de backup com a extensão “.tar.gz”. Por padrão, ele deve estar dentro do seu contêiner em: shared/backups/default
2) Fazendo uma Cópia: Depois de encontrar o backup com o qual deseja trabalhar, crie uma cópia dele para garantir que você tenha um backup do arquivo original. Use o comando “cp”:
bash
sudo cp /path/to/original_backup.tar.gz /path/to/copy_backup.tar.gz
3) Extraindo a Cópia: Extraia o conteúdo do arquivo de backup copiado usando o comando “tar”:
bash
tar -xzvf /path/to/copy_backup.tar.gz
Isso extrairá os arquivos de backup para um diretório temporário.
4) Editando as Tags no Banco de Dados: Navegue até os arquivos de backup extraídos e abra o arquivo de banco de dados relevante usando um editor de texto. Encontrei um problema com tags duplicadas de “socialmedia”, que impediram a restauração bem-sucedida. Em um banco de dados grande, há muitas instâncias de tags, e provavelmente para a tag específica que você está procurando, então procurei por ‘immutable socialmedia’ usando Ctrl W no Nano, o que me levou diretamente até lá.
sudo nano /path/to/extracted_database.sql
Editei uma instância da tag “socialmedia” para “socialmedia2”, depois fiz uma busca rápida para verificar se ela aparece apenas uma vez agora. Posso corrigir essas tags na seção de administração assim que a restauração for bem-sucedida.
5) Recompactando: Após editar os arquivos de backup, crie um novo arquivo de backup com o conteúdo corrigido. Use o seguinte comando para compactar os arquivos modificados:
tar -czvf /path/to/new_modified_backup.tar.gz /path/to/modified_files_directory
6) Movendo para o Arquivo Correto: Mova o novo arquivo de backup modificado para o diretório apropriado onde os backups são armazenados. O local padrão geralmente é “/shared/backups/default”:
sudo mv /path/to/new_modified_backup.tar.gz /shared/backups/default/
7) Parando e Iniciando Serviços: Antes de restaurar o backup modificado, certifique-se de parar os serviços relevantes para evitar conflitos potenciais durante o processo de restauração. Use o comando “./launcher stop app” para parar o aplicativo Discourse:
./launcher stop app
8) Restaurando o Backup: Para restaurar a partir do backup modificado, use o comando “discourse restore” com o caminho para o novo arquivo de backup:
discourse restore /shared/backups/default/new_modified_backup.tar.gz
Ou você pode fazer isso via /admin em seu site, pois ele agora deve aparecer na seção de backups.
9) Verificando a Restauração: Após a conclusão do processo de restauração, verifiquei se as alterações foram bem-sucedidas verificando o aplicativo Discourse e o banco de dados para garantir que as tags duplicadas de “socialmedia” foram removidas.
10) Iniciando Serviços: Reiniciei os serviços que foram parados anteriormente para trazer o aplicativo Discourse de volta online. Usei o comando “./launcher start app” para iniciar o aplicativo Discourse:
./launcher start app
11) Excluindo Arquivos Temporários e Backups Extras: Após restaurar com sucesso o backup, excluí quaisquer arquivos temporários e backups extras que foram criados durante o processo para liberar espaço em disco. Use o comando “rm” para remover os arquivos:
sudo rm -r /path/to/temporary_directory
sudo rm /path/to/copy_backup.tar.gz
