Backup di Discourse dalla riga di comando

Con l’aiuto di un po’ di IA, ecco un elenco completo dei sottocomandi per il comando discourse.

La CLI discourse (implementata tramite script/discourse utilizzando il gem Thor) fornisce 13 sottocomandi principali, categorizzati in Backup e Ripristino, Gestione del Sito e Modalità, Utilità Database e Migrazione Dati (Importazione/Esportazione).


Riferimento Rapido dei Comandi

Categoria Sottocomando Funzione Primaria
Backup e Ripristino backup Genera un archivio di backup completo o solo del database.
restore Ripristina un file di backup .tar.gz nell’istanza.
enable_restore Concede il permesso di eseguire comandi di ripristino.
disable_restore Revoca il permesso di eseguire ripristini.
rollback Annulla lo stato del database dopo un ripristino fallito.
Modalità Sito enable_readonly Attiva la modalità di sola lettura temporanea su tutto il sito.
disable_readonly Rimuove la modalità di sola lettura per ripristinare le scritture normali sul sito.
request_refresh Attiva una richiesta di aggiornamento del browser a tutti i client connessi attivi.
Operazioni Database remap Esegue una ricerca e sostituzione globale di testo nelle tabelle del database.
Migrazione Dati export_category Esporta una singola categoria, i suoi argomenti e gli utenti associati.
import_category Importa un archivio di categoria nel forum corrente.
export_topics Esporta argomenti specifici per ID e i relativi account di autore/rispondente.
import_topics Importa un archivio di argomenti nel forum corrente.

Documentazione Dettagliata dei Sottocomandi

1. Comandi di Backup e Ripristino

discourse backup [NOME_FILE]

  • Descrizione: Crea un backup completo del database del forum e delle risorse (assets).

  • Flag:

  • --sql-only: (Booleano, Predefinito: false) Esporta solo il database PostgreSQL, saltando i file caricati localmente.

  • --s3-uploads: (Booleano, Predefinito: false) Forza l’inclusione delle risorse archiviate su S3 nell’archivio di backup (ignorato quando è impostato --sql-only).

  • Esempio:

discourse backup
discourse backup --sql-only

discourse restore [NOME_FILE]

  • Descrizione: Ripristina un backup del forum da un archivio locale .tar.gz situato in /var/www/discourse/public/backups/default.
  • Prerequisito: Richiede l’esecuzione preliminare di discourse enable_restore.
  • Esempio:
discourse restore discourse-2026-07-22-120000-v2026xxxx.tar.gz

discourse enable_restore e discourse disable_restore

  • Descrizione: Attiva o disattiva il flag dell’applicazione che consente o limita le operazioni di ripristino da console/web.
  • Sequenza di Utilizzo:
discourse enable_restore
discourse restore <nome_file>
discourse disable_restore

discourse rollback

  • Descrizione: Annulla lo schema e lo stato del database al punto precedente all’esecuzione di un ripristino fallito.

2. Stato del Sito e Controlli Client

discourse enable_readonly e discourse disable_readonly

  • Descrizione: Imposta o cancella la chiave READONLY_MODE_KEY in Redis.
  • Dettagli:
  • Blocca le scritture sul database mantenendo il sito leggibile per gli utenti.
  • Utilizza un ciclo a breve tempo di vita (TTL) che viene aggiornato mentre è attivo, impedendo che il sito rimanga bloccato permanentemente in caso di crash della sessione terminale.

discourse request_refresh

  • Descrizione: Invia un messaggio di sistema tramite MessageBus istruendo tutte le sessioni web online a ricaricare la pagina web. Utile dopo aver distribuito aggiornamenti delle risorse o cambiamenti globali del tema.

3. Rimappatura Database

discourse remap [OPZIONI] DA A

  • Descrizione: Esegue una ricerca e sostituzione diretta di stringhe nelle colonne di testo del database. Cruciale quando si aggiornano nomi di dominio, percorsi CDN o prefissi di caricamento immagini.

  • Flag:

  • --global: (Booleano) Scansiona e rimappa tutte le tabelle invece delle sole tabelle di contenuto standard.

  • --regex: (Booleano) Valuta il parametro DA come espressione regolare invece di una stringa letterale.

  • Esempio:

discourse remap "vecchio-dominio.com" "nuovo-dominio.com"
discourse remap --global "/uploads/default/" "/cdn-uploads/"

4. Importazione ed Esportazione Selettiva dei Dati

discourse export_category [ID_CATEGORIA]

  • Descrizione: Serializza una singola categoria, inclusi tutti gli argomenti annidati, i post e i profili degli utenti partecipanti, in un file archivio JSON.

discourse import_category [PERCORSO_FILE]

  • Descrizione: Legge un archivio creato da export_category e fonde i dati della categoria nell’istanza di destinazione.

discourse export_topics [ID_ARGOMENTI...]

  • Descrizione: Prende uno o più ID argomento separati da spazi ed esporta gli argomenti, i post e i relativi account utente.
  • Esempio:
discourse export_topics 102 105 210

discourse import_topics [PERCORSO_FILE]

  • Descrizione: Importa un archivio JSON creato da export_topics nell’istanza Discourse di destinazione.
1 Mi Piace