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.