Copia de seguridad de Discourse desde la línea de comandos

Con la ayuda de cierta IA, aquí tienes una lista exhaustiva de subcomandos para el comando discourse.

La CLI de discourse (implementada mediante script/discourse usando la gema Thor) proporciona 13 subcomandos principales categorizados en Copias de seguridad y restauraciones, Gestión del sitio y modos, Utilidades de base de datos y Migración de datos (Importación/Exportación).


Referencia rápida de comandos

Categoría Subcomando Función principal
Copia de seguridad y restauración backup Genera un archivo de copia de seguridad completo o solo de la base de datos.
restore Restaura un archivo de copia de seguridad .tar.gz en la instancia.
enable_restore Otorga permiso para ejecutar comandos de restauración.
disable_restore Revoca el permiso para realizar restauraciones.
rollback Revierte el estado de la base de datos después de una restauración fallida.
Modos del sitio enable_readonly Activa el modo de solo lectura temporal en todo el sitio.
disable_readonly Desactiva el modo de solo lectura para restaurar las escrituras normales del sitio.
request_refresh Dispara una solicitud de actualización del navegador a todos los clientes conectados activos.
Operaciones de base de datos remap Realiza una búsqueda y reemplazo global de texto en las tablas de la base de datos.
Migración de datos export_category Exporta una sola categoría, sus temas y los usuarios asociados.
import_category Importa un archivo de categoría al foro actual.
export_topics Exporta temas específicos por ID y sus cuentas de autor/contestador.
import_topics Importa un archivo de temas al foro actual.

Documentación detallada de subcomandos

1. Comandos de copia de seguridad y restauración

discourse backup [FILENAME]

  • Descripción: Crea una copia de seguridad completa de la base de datos del foro y los activos.

  • Banderas:

  • --sql-only: (Booleano, Predeterminado: false) Volca solo la base de datos PostgreSQL, omitiendo los archivos cargados localmente.

  • --s3-uploads: (Booleano, Predeterminado: false) Fuerza la inclusión de activos almacenados en S3 en el archivo de copia de seguridad (se ignora cuando se establece --sql-only).

  • Ejemplo:

discourse backup
discourse backup --sql-only

discourse restore [FILENAME]

  • Descripción: Restaura una copia de seguridad del foro desde un archivo local .tar.gz ubicado en /var/www/discourse/public/backups/default.
  • Prerrequisito: Requiere ejecutar discourse enable_restore primero.
  • Ejemplo:
discourse restore discourse-2026-07-22-120000-v2026xxxx.tar.gz

discourse enable_restore y discourse disable_restore

  • Descripción: Alterna la bandera de la aplicación que permite o restringe las tareas de restauración basadas en consola/web.
  • Secuencia de uso:
discourse enable_restore
discourse restore <filename>
discourse disable_restore

discourse rollback

  • Descripción: Revuelve el esquema y el estado de la base de datos al punto anterior a una ejecución de restauración fallida.

2. Estado del sitio y controles de cliente

discourse enable_readonly y discourse disable_readonly

  • Descripción: Establece o borra la READONLY_MODE_KEY en Redis.
  • Detalles:
  • Congela las escrituras en la base de datos mientras mantiene el sitio legible para los usuarios.
  • Usa un bucle de tiempo de vida (TTL) corto que se actualiza mientras está activo, evitando que el sitio permanezca bloqueado permanentemente si una sesión de terminal falla.

discourse request_refresh

  • Descripción: Envía un mensaje del sistema a través de MessageBus instruyendo a todas las sesiones web en línea para que recarguen la página web. Útil después de implementar actualizaciones de activos o cambios globales de tema.

3. Remapeo de base de datos

discourse remap [OPTIONS] FROM TO

  • Descripción: Realiza una búsqueda y reemplazo directo de cadenas en las columnas de texto de la base de datos. Crucial al actualizar nombres de dominio, rutas de CDN o prefijos de carga de imágenes.

  • Banderas:

  • --global: (Booleano) Escanea y remapea en todas las tablas en lugar de solo en las tablas de contenido estándar.

  • --regex: (Booleano) Evalúa el parámetro FROM como una expresión regular en lugar de una cadena literal.

  • Ejemplo:

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

4. Importación y exportación selectiva de datos

discourse export_category [CATEGORY_ID]

  • Descripción: Serializa una sola categoría, incluyendo todos los temas anidados, publicaciones y perfiles de usuarios participantes, en un archivo de archivo JSON.

discourse import_category [FILE_PATH]

  • Descripción: Lee un archivo creado por export_category y fusiona los datos de la categoría en la instancia de destino.

discourse export_topics [TOPIC_IDS...]

  • Descripción: Toma uno o más IDs de temas separados por espacios y exporta los temas, publicaciones y cuentas de usuarios relevantes.
  • Ejemplo:
discourse export_topics 102 105 210

discourse import_topics [FILE_PATH]

  • Descripción: Importa un archivo JSON creado por export_topics en la instancia de Discourse de destino.
1 me gusta