Crea, scarica e ripristina un backup del tuo database Discourse

:bookmark: Questa guida fornisce istruzioni dettagliate per creare, scaricare e ripristinare un backup del tuo database Discourse.

:person_raising_hand: Livello utente richiesto: Amministratore

Discourse consente agli amministratori del sito di creare e scaricare una copia del database del sito. Il backup può quindi essere caricato e ripristinato su qualsiasi forum Discourse.

I backup di Discourse includono l’intero database del sito, che contiene tutto ciò che è presente sul sito: argomenti, post, utenti, gruppi, impostazioni, temi, ecc. A seconda di come viene creato il file di backup, potrebbe includere o meno i caricamenti. I backup che includono i caricamenti vengono salvati come file .tar.gz, mentre i backup senza caricamenti vengono salvati come file .sql.gz. Vedi la sezione successiva per i dettagli.

Sebbene i dati creati dai plugin esistano nel database, i plugin stessi sono installati nel file app.yml. Per ripristinare il tuo sito su un nuovo server, dovrai assicurarti che la tua installazione includa i plugin necessari.

Modalità di sola lettura

È possibile abilitare la modalità di sola lettura nella pagina Backup per impedire modifiche al sito per le attività relative all’amministrazione. Scopri di più sulla modalità di sola lettura qui.

Crea un backup

Per creare un backup del tuo sito Discourse, segui questi passaggi:

  1. Vai alla sezione Admin / Backups del tuo sito.
  2. Fai clic sul pulsante Backup.

  1. Si aprirà una finestra modale con una casella di controllo per includere i caricamenti del sito nel backup. Seleziona o deseleziona questa opzione in base alle tue preferenze.

:warning: Se il tuo sito è ospitato da noi e desideri creare un backup che includa i caricamenti, contatta il team di Discourse prima di creare il backup.

  1. Fai clic sul pulsante di conferma per avviare il backup.

Scarica un backup

Al completamento del backup, Discourse ti invierà una notifica.

  • Fai clic sul link nella notifica per tornare alla pagina Backup. Quindi fai clic sul pulsante Download.

  • Ti verrà inviata un’e-mail con un link per scaricare il backup. Fai clic sul link per salvare il backup sul tuo computer.

Carica un backup

  • Per caricare un backup, vai alla sezione Admin / Backups del tuo sito, naviga nella scheda Backup Files e fai clic sul pulsante Upload.

  • Questo aprirà il file manager del tuo browser. Seleziona il backup dal tuo file system e fai clic sul pulsante Open del file manager. Il nuovo file di backup verrà visualizzato nell’elenco dei file.

Ripristina un backup

Prima di poter ripristinare il tuo file di backup, devi abilitare l’impostazione del sito allow restore. Quindi, nella pagina Backups, trova il backup che desideri ripristinare, fai clic sul menu altre opzioni (⋮) e seleziona Restore.

:warning: Il ripristino di un file di backup sovrascriverà tutti i dati presenti sul sito. Quando il backup viene ripristinato, sarai disconnesso dal sito e dovrai effettuare nuovamente l’accesso con le tue credenziali del sito ripristinato.

:warning: Assicurati che il sito in cui stai ripristinando stia eseguendo la stessa versione di Discourse del sito precedente. È meglio aggiornare entrambi i siti all’ultima versione prima di eseguire il processo di backup/ripristino.

Il processo di ripristino imposta automaticamente l’impostazione disable emails su “non-staff”, in modo che le e-mail non vengano inviate agli utenti del tuo sito finché non sarai pronto.

:discourse: Se il tuo sito è ospitato da Discourse, l’opzione Ripristina sarà disabilitata. Dopo aver caricato il file di backup, contatta il team di Discourse e facci sapere il nome del file di backup che desideri ripristinare. Lo ripristineremo per te.

Backup e ripristino da riga di comando

Per gli amministratori che hanno familiarità con la riga di comando, è possibile creare e gestire i backup programmaticamente:

  • I backup sono archiviati in /var/discourse/shared/standalone/backups.
  • Avvia un backup utilizzando:
./launcher run app discourse backup

o

docker exec app bash -c "discourse backup"

Per maggiori informazioni sui backup da riga di comando, consulta: Backup di discourse dalla riga di comando.

32 Mi Piace

È possibile creare e scaricare questo file di backup in modo programmatico? Voglio dire, ho alcuni script cron sul server che eseguono il backup di innumerevoli altri servizi, posso eseguire alcuni comandi CLI direttamente sul server per ottenere il backup lì? Magari ./launcher app backup new-backup.backup o qualcosa di simile?

I backup si trovano in /var/discourse/shared/standalone/backups

Puoi avviare un backup con

./launcher run app discourse backup

Oppure

docker exec app bash -c "discourse backup"

Penso.

2 Mi Piace

È anche possibile in un ambiente di sviluppo Docker, configurato come descritto su Install Discourse for development using Docker?

Quando provo come descritto nella sezione Creare un backup sopra, ottengo l’errore 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 del backup fallito
[2024-09-04 15:03:39] [STARTED]
[2024-09-04 15:03:39] 'raphael.dasgupta' ha avviato il backup!
[2024-09-04 15:03:39] Marcatura del backup come in esecuzione...
[2024-09-04 15:03:39] Assicurazione che '/src/tmp/backups/default/2024-09-04-150339' esista...
[2024-09-04 15:03:39] Assicurazione che '/src/public/backups/default' esista...
[2024-09-04 15:03:39] Aggiornamento dei metadati...
[2024-09-04 15:03:39] Dumping dello schema pubblico del database...
[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] Pulizia...
[2024-09-04 15:03:40] Rimozione dei residui '.tar'...
[2024-09-04 15:03:40] Marcatura del backup come completato...
[2024-09-04 15:03:40] Notifica a 'raphael.dasgupta' della fine del backup...
1 Mi Piace

Sto avendo difficoltà a scaricare un backup. Quando ho cliccato sul pulsante di download, ho ricevuto un messaggio che diceva che un link per il download era stato inviato al mio indirizzo email. Tuttavia, sono passati più di due giorni e non ho ancora ricevuto l’email.

Per favore, assistimi.

hai provato ./discourse-doctor

Grazie per la tua risposta. Il problema principale è che ho configurato un’altra email dal backend come amministratore. La connessione alla porta numero 587 continua a fallire e le email non vengono inviate. C’è un modo per aggirare il problema o c’è un’altra porta da usare?

1 Mi Piace

è questa la risposta alternativa tramite indirizzo email che hai confermato?

la porta 587 è quella che uso per connettermi a smtp.eu.mailgun.org

Queste sono le impostazioni del mio server.

Capisco, quindi vuoi Office 365 sul tuo dominio principale e Discourse transactional email / mail-receiver tramite MX su un sottodominio?

Sì, perché la mia email è impostata su 365

Penso che la causa del problema sia che stai usando Office 365 per le email transazionali. Potresti voler utilizzare un servizio di posta transazionale come Mailgun o Brevo, entrambi utilizzati con Discourse senza molti problemi.

1 Mi Piace

Posso aiutarti con le configurazioni descritte. Al momento, non sarai in grado di inviare o ricevere e-mail di discourse utilizzando i tuoi abbonamenti a Office 365.

A che scala di forum stiamo parlando? un piano di posta elettronica gratuito potrebbe essere sufficiente.

Ho configurato le impostazioni SMTP utilizzando Brevo e ho utilizzato la porta 587, e sto ancora ricevendo lo stesso errore. Per favore, aiutami, non sono sicuro di dove sto sbagliando.

Hmm… che ne dici di cambiare la porta in 2525?

1 Mi Piace

sei riuscito a farlo funzionare?

Durante il caricamento del file di backup, non è possibile selezionare il file di backup scaricato, poiché appare in grigio e non può essere selezionato. Il file ha l’estensione tar.gz.

Il file caricato da cui si sta tentando di eseguire il ripristino è una versione recente di Discourse?

Hai modificato il nome del file? Non funzionerà se non è il nome specificato quando viene creato il backup.

1 Mi Piace