Criar, baixar e restaurar um backup do seu banco de dados Discourse

:bookmark: Este guia fornece instruções passo a passo para criar, baixar e restaurar um backup do seu banco de dados do Discourse.

:person_raising_hand: Nível de usuário necessário: Administrador

O Discourse permite que administradores do site criem e baixem uma cópia do banco de dados do site. O backup pode então ser carregado e restaurado em qualquer fórum Discourse.

Os backups do Discourse incluem o banco de dados completo do site, que contém tudo no site: tópicos, posts, usuários, grupos, configurações, temas, etc. Dependendo de como o arquivo de backup é criado, ele pode ou não incluir uploads. Backups que incluem uploads são salvos como arquivos .tar.gz, enquanto backups sem uploads são salvos como arquivos .sql.gz. Consulte a próxima seção para obter detalhes.

Embora os dados criados por plugins existam no banco de dados, os próprios plugins são instalados no seu arquivo app.yml. Para restaurar seu site em um novo servidor, você precisará garantir que sua instalação inclua os plugins necessários.

Modo somente leitura

Você pode ativar o modo somente leitura na página de Backups para impedir alterações no site para tarefas relacionadas ao administrador. Saiba mais sobre o modo somente leitura aqui.

Criar um backup

Para criar um backup do seu site Discourse, siga estas etapas:

  1. Acesse a seção Admin / Backups do seu site.
  2. Clique no botão Backup.

  1. Uma janela modal será aberta com uma caixa de seleção para incluir os uploads do site no backup. Marque ou desmarque esta opção com base na sua preferência.

:warning: Se o seu site for hospedado por nós e você deseja criar um backup que inclua uploads, entre em contato com a equipe do Discourse antes de criar o backup.

  1. Clique no botão de confirmação para iniciar o backup.

Baixar um backup

Quando o backup for concluído, o Discourse enviará uma notificação.

  • Clique no link na notificação para retornar à sua página de Backups. Em seguida, clique no botão Download.

  • Um e-mail com um link para baixar o backup será enviado a você. Clique no link para salvar o backup no seu computador.

Carregar um backup

  • Para carregar um backup, acesse a seção Admin / Backups do seu site, navegue até a guia Backup Files (Arquivos de Backup) e clique no botão Upload (Carregar).

  • Isso abrirá o gerenciador de arquivos do seu navegador. Selecione o backup no seu sistema de arquivos e clique no botão Open (Abrir) do gerenciador de arquivos. O novo arquivo de backup será exibido na lista de arquivos.

Restaurar um backup

Antes de poder restaurar seu arquivo de backup, você precisa habilitar a configuração do site allow restore (permitir restauração). Em seguida, na página Backups, localize o backup que deseja restaurar, clique no menu de mais opções (⋮) e selecione Restore (Restaurar).

:warning: Restaurar um arquivo de backup sobrescreverá todos os dados no site. Quando o backup for restaurado, você será desconectado do site e precisará fazer login novamente com suas credenciais do site restaurado.

:warning: Certifique-se de que o site em que você está restaurando esteja executando a mesma versão do Discourse que o site antigo. É melhor atualizar ambos os sites para a versão mais recente antes de executar o processo de backup/restauração.

O processo de restauração define automaticamente a configuração disable emails (desabilitar e-mails) como “non-staff” (não-membros da equipe), para que os e-mails não sejam enviados aos usuários do seu site até que você esteja pronto.

:discourse: Se o seu site for hospedado pelo Discourse, a opção Restaurar estará desabilitada. Após carregar o arquivo de backup, entre em contato com a equipe do Discourse e informe o nome do arquivo de backup que você deseja restaurar. Nós o restauraremos para você.

Backup e restauração pela linha de comando

Para administradores familiarizados com a linha de comando, você pode criar e gerenciar backups programaticamente:

  • Os backups são armazenados em /var/discourse/shared/standalone/backups.
  • Inicie um backup usando:
./launcher run app discourse backup

ou

docker exec app bash -c "discourse backup"

Para mais informações sobre backups na linha de comando, consulte: Backup discourse from the command line.

32 curtidas

Existe uma maneira de criar e baixar este arquivo de backup programaticamente? Quero dizer, tenho alguns scripts cron no servidor que fazem backup de muitos outros serviços, posso emitir alguns comandos CLI diretamente no servidor para obter o backup lá? Talvez ./launcher app backup new-backup.backup ou algo assim?

Os backups estão em /var/discourse/shared/standalone/backups

Você pode iniciar um backup com

./launcher run app discourse backup

Ou

docker exec app bash -c "discourse backup"

Eu acho.

2 curtidas

Isso também é possível em um ambiente de desenvolvimento Docker, configurado conforme descrito em Install Discourse for development using Docker?

Quando tento fazer isso como descrito na seção Criar um backup acima, recebo o erro pg_dump: error: connection to database "discourse_development" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres".

Log completo do backup com falha
[2024-09-04 15:03:39] [STARTED]
[2024-09-04 15:03:39] 'raphael.dasgupta' iniciou o backup!
[2024-09-04 15:03:39] Marcando backup como em execução...
[2024-09-04 15:03:39] Garantindo que '/src/tmp/backups/default/2024-09-04-150339' exista...
[2024-09-04 15:03:39] Garantindo que '/src/public/backups/default' exista...
[2024-09-04 15:03:39] Atualizando metadados...
[2024-09-04 15:03:39] Despejando o esquema público do banco de dados...
[2024-09-04 15:03:40] pg_dump: error: connection to database "discourse_development" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres"
[2024-09-04 15:03:40] EXCEPTION: pg_dump failed
[2024-09-04 15:03:40] /src/lib/backup_restore/backuper.rb:173:in `dump_public_schema'
/src/lib/backup_restore/backuper.rb:36:in `run'
/src/script/spawn_backup_restore.rb:9:in `backup'
/src/script/spawn_backup_restore.rb:31:in `block in <main>'
/src/script/spawn_backup_restore.rb:4:in `fork'
/src/script/spawn_backup_restore.rb:4:in `<main>'
[2024-09-04 15:03:40] Limpando as coisas...
[2024-09-04 15:03:40] Removendo sobras de '.tar'...
[2024-09-04 15:03:40] Marcando backup como concluído...
[2024-09-04 15:03:40] Notificando 'raphael.dasgupta' sobre o fim do backup...
1 curtida

Estou com dificuldades para baixar um backup. Quando cliquei no botão de download, recebi um aviso de que um link de download havia sido enviado para meu endereço de e-mail. No entanto, já se passaram mais de dois dias e ainda não recebi o e-mail.

Por favor, ajude-me.

Você já tentou ./discourse-doctor

Obrigado pela sua resposta. O principal problema é que configurei outro e-mail do backend como administrador. A conexão com a porta 587 continua falhando e os e-mails não estão sendo enviados. Existe uma maneira de contornar isso ou há outra porta para usar?

1 curtida

este é o endereço de e-mail de resposta alternativo que você confirmou?

a porta 587 é o que eu uso para me conectar a smtp.eu.mailgun.org

Estas são as minhas configurações de servidor.

Entendi, então você quer o Office 365 no seu domínio raiz e o Discourse para e-mail transacional / receptor de e-mail via MX em um subdomínio?

Sim, porque meu e-mail está configurado no 365

Acho que a causa do problema é que você está usando o Office 365 para e-mails transacionais. Você pode querer usar um serviço de e-mail transacional como Mailgun ou Brevo, ambos usados com o Discourse sem muitos problemas.

1 curtida

Posso ajudá-lo com as configurações descritas. Atualmente, você não poderá enviar ou receber e-mails do Discourse usando suas assinaturas do Office 365.

Qual a escala do fórum que estamos considerando? Um plano de e-mail gratuito pode ser suficiente.

Configurei as configurações de SMTP usando Brevo e usei a porta 587, e ainda estou recebendo o mesmo erro. Por favor, ajude, não tenho certeza de onde estou errando.

Hmm… que tal mudar a porta para 2525?

1 curtida

Você conseguiu fazer isso funcionar?

Ao carregar o arquivo de backup, não é possível selecionar o arquivo de backup baixado, pois ele aparece em cinza e não pode ser selecionado. O arquivo tem a extensão tar.gz.

O arquivo que você está tentando restaurar é de uma versão recente do Discourse?

Você alterou o nome do arquivo? Não funcionará se não for o nome dado quando o backup é criado.

1 curtida