Este guia explica como restaurar um backup do Discourse a partir da linha de comando sem usar a interface web do Discourse.
Nível de utilizador exigido: Administrador
Acesso ao console necessário
Veja como restaurar um backup do Discourse a partir da linha de comando, sem nunca iniciar a interface web do Discourse. Isso é útil quando você está mudando de servidor.
Pré-requisitos
Antes de começar, certifique-se de completar os seguintes passos:
- Baixe o arquivo de backup mais recente da instância do Discourse de origem.
- Inicialize a instância do Discourse de destino executando
./discourse-setupou copiando seuapp.ymlexistente. - Certifique-se de que a instância do Discourse de destino esteja na versão mais recente. Atualize-a, se necessário.
Transferir o backup
- Conecte-se via SSH ao servidor de destino, ou crie a pasta de backup lá de outra forma:
mkdir -p /var/discourse/shared/standalone/backups/default
- Carregue seu arquivo de backup para o servidor de destino.
scp /path/to/backup/backup.tar.gz root@192.168.1.1:/var/discourse/shared/standalone/backups/default
Certifique-se de substituir os caminhos, nomes de arquivos e nomes de servidor pelos que você está usando – mas você quer que o arquivo de backup termine em:
/var/discourse/shared/standalone/backups/default
Você também pode carregar e baixar seu arquivo de backup do Discourse de sites populares de armazenamento na web, como Google Drive, Dropbox, OneDrive, etc. – você precisará procurar as instruções de linha de comando específicas com base no seu provedor de armazenamento na web preferido.
NÃO ALTERE O NOME DO ARQUIVO DE BACKUP! O Discourse trata o nome do arquivo de backup como metadados, portanto, se você alterar o nome do arquivo, a restauração não funcionará. Mantenha o nome de arquivo original.
Substitua /path/to/backup/discourse-xyz.tar.gz pelo caminho local do seu arquivo de backup e substitua \u003cserver_ip_address\u003e pelo endereço IP do servidor de destino.
Se o Nginx for usado como proxy reverso certifique-se de que todos os caminhos para o backup sejam legíveis pelo contêiner e que o Nginx possa ler o arquivo
.sock.
Restaurar o backup
- Acesse seu servidor de destino e navegue até a pasta do Discourse:
cd /var/discourse
- Entre no contêiner do aplicativo Docker do Discourse:
./launcher enter app
- Habilite a funcionalidade de restauração:
discourse enable_restore
- Restaure o arquivo de backup:
discourse restore sitename-2019-02-03-042252-v20190130013015.tar.gz
Dica: Se você executar
discourse restoresem um nome de arquivo, ele listará todos os arquivos de backup disponíveis.
Se a configuração
backup_locationdo seu site estiver configurada para usar S3, mas você carregou manualmente o arquivo de backup para o sistema de arquivos local, você precisa especificar--location local:discourse restore --location local sitename-2019-02-03-042252-v20190130013015.tar.gzDa mesma forma, use
--location s3para restaurar diretamente de um backup S3 sem baixá-lo primeiro.
- Saia do contêiner do aplicativo Docker do Discourse:
exit
Reconstruir
Depois de restaurar o backup, você pode optar por reconstruir a instância de destino para garantir que todas as configurações e ajustes sejam aplicados corretamente.
Agora é um bom momento para atualizar
/var/discourse/containers/app.ymlcom HTTPS completo, plugins adicionais ou configuração de CDN. Compare a configuraçãoapp.ymlde ambas as instâncias para ter certeza!
cd /var/discourse
./launcher rebuild app
Habilitar E-mail
Quando um backup é restaurado, o envio de e-mails para não-membros da equipe é desabilitado. Você não quer que seu servidor de teste, novo servidor ou servidor para o qual você acabou de restaurar um backup por qualquer outro motivo comece a enviar e-mails aos seus usuários! Altere a configuração do site disable_emails para “no” para reativar o e-mail.
É isso. Seu servidor Discourse foi restaurado com sucesso.