Backup do discourse a partir da linha de comando

Com a ajuda de alguma IA, aqui está uma lista abrangente de subcomandos para o comando discourse.
A CLI discourse (implementada via script/discourse usando a gem Thor) fornece 13 subcomandos principais categorizados em Backups & Restaurações, Gerenciamento de Site & Modos, Utilitários de Banco de Dados e Migração de Dados (Importação/Exportação).


Referência Rápida de Comandos

Categoria Subcomando Função Principal
Backup & Restauração backup Gera um arquivo de backup completo ou apenas do banco de dados.
restore Restaura um arquivo de backup .tar.gz na instância.
enable_restore Concede permissão para executar comandos de restauração.
disable_restore Revoga a permissão para realizar restaurações.
rollback Reverte o estado do banco de dados após uma falha na restauração.
Modos de Site enable_readonly Ativa o modo de somente leitura temporário em todo o site.
disable_readonly Remove o modo de somente leitura para restaurar as gravações normais do site.
request_refresh Aciona um prompt de atualização do navegador para todos os clientes conectados ativos.
Operações de Banco de Dados remap Executa busca e substituição global de texto nas tabelas do banco de dados.
Migração de Dados export_category Exporta uma única categoria, seus tópicos e usuários associados.
import_category Importa um arquivo de categoria no fórum atual.
export_topics Exporta tópicos específicos por ID e suas contas de autor/resposta.
import_topics Importa um arquivo de tópicos no fórum atual.

Documentação Detalhada dos Subcomandos

1. Comandos de Backup & Restauração

discourse backup [FILENAME]

  • Descrição: Cria um backup completo do banco de dados e dos ativos do fórum.

  • Flags:

  • --sql-only: (Booleano, Padrão: false) Faz dump apenas do banco de dados PostgreSQL, ignorando arquivos locais enviados.

  • --s3-uploads: (Booleano, Padrão: false) Força a inclusão de ativos armazenados no S3 no arquivo de backup (ignorado quando --sql-only está definido).

  • Exemplo:

discourse backup
discourse backup --sql-only

discourse restore [FILENAME]

  • Descrição: Restaura um backup de fórum de um arquivo .tar.gz local localizado em /var/www/discourse/public/backups/default.
  • Pré-requisito: Exige a execução de discourse enable_restore primeiro.
  • Exemplo:
discourse restore discourse-2026-07-22-120000-v2026xxxx.tar.gz

discourse enable_restore & discourse disable_restore

  • Descrição: Alterna a flag de aplicação que permite ou restringe tarefas de restauração via console/web.
  • Sequência de Uso:
discourse enable_restore
discourse restore <filename>
discourse disable_restore

discourse rollback

  • Descrição: Reverte o esquema e o estado do banco de dados para o ponto anterior a uma execução de restauração falha.

2. Controles de Estado do Site & Cliente

discourse enable_readonly & discourse disable_readonly

  • Descrição: Define ou limpa a READONLY_MODE_KEY no Redis.
  • Detalhes:
  • Congela gravações no banco de dados enquanto mantém o site legível para os usuários.
  • Usa um loop de tempo de vida curto (TTL) renovado enquanto ativo, impedindo que o site permaneça bloqueado permanentemente se a sessão do terminal falhar.

discourse request_refresh

  • Descrição: Envia uma mensagem de sistema via MessageBus instruindo todas as sessões web online a recarregar a página web. Útil após implantar atualizações de ativos ou mudanças globais de tema.

3. Remapeamento de Banco de Dados

discourse remap [OPTIONS] FROM TO

  • Descrição: Executa uma busca e substituição direta de string nas colunas de texto do banco de dados. Crucial ao atualizar nomes de domínio, caminhos de CDN ou prefixos de upload de imagens.

  • Flags:

  • --global: (Booleano) Varre e remapeia todas as tabelas, em vez das tabelas de conteúdo padrão.

  • --regex: (Booleano) Avalia o parâmetro FROM como uma expressão regular, em vez de uma string literal.

  • Exemplo:

discourse remap "old-domain.com" "new-domain.com"
discourse remap --global "/uploads/default/" "/cdn-uploads/"

4. Importação & Exportação Seletiva de Dados

discourse export_category [CATEGORY_ID]

  • Descrição: Serializa uma única categoria, incluindo todos os tópicos aninhados, posts e perfis de usuários participantes, em um arquivo de arquivo JSON.

discourse import_category [FILE_PATH]

  • Descrição: Lê um arquivo criado por export_category e mescla os dados da categoria na instância de destino.

discourse export_topics [TOPIC_IDS...]

  • Descrição: Pega um ou mais IDs de tópicos separados por espaço e exporta os tópicos, posts e contas de usuários relevantes.
  • Exemplo:
discourse export_topics 102 105 210

discourse import_topics [FILE_PATH]

  • Descrição: Importa um arquivo JSON criado por export_topics na instância Discourse de destino.
1 curtida