Miglior modo per ripristinare dai backup con i plugin?

Recentemente abbiamo aggiornato da vBulletin a Discourse.

Stiamo ancora imparando a utilizzare Discourse e i suoi strumenti.

Una delle mie preoccupazioni riguarda il ripristino dopo un disastro.

Disponiamo di snapshot automatici conservati per lungo tempo.

Effettuiamo backup giornalieri utilizzando gli strumenti integrati in Discourse e li salviamo in un bucket S3 per 15 giorni.

Il ripristino da uno snapshot è piuttosto semplice.
L’idea è recuperare l’ultimo snapshot funzionante disponibile e poi utilizzare l’ultimo backup disponibile per ripristinare i contenuti.

Avevo bisogno di una macchina di prova per testare alcuni plugin di Discourse.
Quindi è stata un’ottima opportunità per provare il piano di ripristino dopo un disastro.

Invece di utilizzare uno snapshot, ho provato a recuperare da zero (nel caso in cui tutto andasse storto e dovessimo ricominciare da capo per ripristinare un backup disponibile).

Ho creato una macchina Debian, aggiornato il software e installato Discourse da zero (senza plugin, solo il minimo indispensabile).

Ho configurato HTTPS per farlo funzionare e successivamente ho provato a ripristinare l’ultimo backup.

Il ripristino è fallito durante l’aggiornamento del database.

Ha segnalato l’assenza di alcune colonne in alcune tabelle. Il processo è stato annullato e ho ritrovato lo stesso contenuto di prima: quasi nulla.

Leggendo gli errori e alcuni thread qui, ho capito che potrebbe essere causato da versioni diverse di Discourse.

Ho verificato: sì, il nuovo forum aveva una versione leggermente più recente rispetto a quella originale.

Ho aggiornato il forum originale all’ultima versione e ho eseguito un backup.

Ho provato a ripristinarlo, ma è fallito di nuovo con errori simili.

Quindi potrebbe essere che il nuovo forum non avesse installati gli stessi plugin.

Ho quindi modificato app.yml per installarli, ricostruito l’app e riprovato.

Questa volta ha funzionato perfettamente.

Ma mi ha lasciato preoccupato.

Se devi ripristinare il backup su una macchina con esattamente gli stessi plugin e le stesse versioni installate, sarà molto difficile ottenere un ripristino riuscito.

Questa volta il mio vecchio forum era attivo e funzionante, quindi era facile verificare le versioni e aggiornarlo all’ultima.

Ma quando si esegue il ripristino dopo un disastro, non si ha la possibilità di verificare le versioni o aggiornare il software.

Come risolvete questo problema?

Il backup contiene informazioni sui plugin installati e sulle versioni di Discourse e dei plugin?

Come create un’istanza base di Discourse con le versioni appropriate di Discourse e dei plugin per corrispondere a quelle del backup?

Grazie in anticipo per la vostra guida.

È raro che i plugin interferiscano con il database.

Jeff, il problema non è che un plugin non funziona.

Sembra che quando si ripristina un backup sia necessario eseguire esattamente la stessa versione di Discourse e avere installati gli stessi plugin che erano in uso all’origine del backup.

Ma quando si recupera un backup risalente a un tempo passato, non si sa esattamente quali versioni e plugin erano attivi in quel momento.

Sarebbe utile poter elencare la versione e i plugin installati al momento della creazione del backup direttamente dal file di backup e visualizzarli nell’interfaccia di ripristino.

No, non è vero.

Stai utilizzando plugin di terze parti? Per quanto ne so, questo non dovrebbe accadere con i plugin ufficiali di Discourse.

Quindi non è necessario eseguire esattamente la stessa versione dei backup per ripristinarli?
Ho riscontrato un errore durante il ripristino e pensavo fosse dovuto a versioni non corrispondenti.

Sarebbe utile poter verificare la versione di Discourse e quella dei plugin di un backup prima di procedere con il ripristino.

Sto utilizzando un solo plugin di terze parti: Topic List Preview.

Sono riuscito a ripristinare il backup dopo diversi tentativi (senza apportare modifiche).
Stranamente, uno di questi è andato a buon fine senza errori.

Ho notato che non ero l’unico ad avere questo problema: