Ho appena tentato di aggiornare la mia installazione di Discourse all’ultima beta (2.4.0 beta 11) tramite l’aggiornamento web, ma ora è inaccessibile (provate voi stessi: restituisce errori HTTP 500).
Contesto
La mia versione installata era ancora la 2.4.0 beta 6; stavo cercando di aggiornare alla 2.4.0 beta 11.
Penso di aver avuto un’installazione abbastanza standard; non ricordo se avessi plugin personalizzati (e non posso verificarlo ora), ma al massimo 1-2. Ho mantenuto la maggior parte delle impostazioni predefinite di Discourse.
Cosa ho fatto
Ho cliccato sul link di aggiornamento in un clic presente nella mail di notifica dell’aggiornamento, che mi ha portato a /admin/upgrade.
Secondo l’aggiornatore web, dovevo prima eseguire un aggiornamento del gestore Docker prima di poter aggiornare la versione effettiva di Discourse, quindi ho scelto quella. Alcune operazioni sono state eseguite e, dopo circa metà della barra di avanzamento, è apparso un messaggio sopra la schermata di output del log web che indicava che qualcosa era andato storto durante l’aggiornamento e che dovevo controllare i log. Ho scorruto i log, ma nulla mi è saltato immediatamente all’occhio. Purtroppo non sono riuscito a salvare il log e ho semplicemente ricaricato la pagina, sperando di poter riprovare l’installazione e ipotizzando che l’errore avesse causato il semplice rollback dell’aggiornamento.
Curiosamente, la pagina admin/upgrade/ mi ha poi detto che il docker_manager era aggiornato e non necessitava più di aggiornamento, quindi ho (probabilmente erroneamente) assunto che l’aggiornamento avesse effettivamente funzionato e che il messaggio di errore fosse un bug. Ho anche controllato se il forum fosse ancora attivo: lo era e non sembrava avere problemi.
Mi è stata quindi presentata l’opzione per aggiornare l’installazione di Discourse stessa (che in precedenza era disabilitata), quindi l’ho fatto. Ancora una volta, le operazioni sono state registrate nell’output del log, a cui non ho prestato molta attenzione, e dopo circa metà della barra di avanzamento riempita, è apparso un messaggio di errore simile sopra l’output del log riguardante qualcosa andato storto.
Ho pensato di fare come prima: ricaricare la pagina (ancora una volta, purtroppo non ho salvato il log). Come previsto, Discourse è ora indicato come “aggiornato”.
Questo è ciò che vedo attualmente sotto admin/upgrade/:
Ma il forum effettivo non funziona più e restituisce solo errori 500.
Cosa funziona ancora
/admin/upgrade/funziona ancora e mostra che Discourse è aggiornato.- Posso anche cliccare sulla scheda “Processi” e ottenere un elenco dei processi in esecuzione.
Ma persino la scheda “Backup” restituisce già un errore 500, così come /admin. Non ho trovato nessuna parte del forum che funzioni tranne le due schede sotto /admin/upgrade/.
Come recuperare?
Non ho un’idea chiara di cosa sia andato storto e non so nemmeno da dove iniziare. Non so nemmeno come accedere ai log per capire qual era l’errore senza l’interfaccia web. L’installazione di Discourse è ospitata su Digital Ocean e posso accedere via SSH alla macchina e probabilmente al contenitore, ma non so dove cercare i log.
Un indizio su dove cercare i log sarebbe molto apprezzato.
Per ora, la mia migliore idea è tornare a un backup e perdere tutto ciò che è stato pubblicato dopo l’ultimo backup (fortunatamente non c’è molto traffico, quindi perdere un giorno di contenuti è accettabile).
Il mio piano attuale e ciò che mi manca
Ho configurato Digital Ocean per eseguire backup settimanali dal Droplet e credo che la mia installazione di Discourse fosse impostata per backup giornalieri. Non ho mai configurato S3, quindi dovrebbero essere ancora salvati localmente. Il backup del Droplet di Digital Ocean è vecchio di 5 giorni; tuttavia, preferirei non perdere i contenuti degli ultimi giorni.
Il mio piano approssimativo è essenzialmente tornare tramite i backup a uno stato funzionante noto, facendo quanto segue:
- Scaricare il backup di Discourse di oggi/ieri.
- Effettuare il rollback dell’intero Droplet tramite Digital Ocean all’ultimo backup di 5 giorni fa, in modo da avere di nuovo un’installazione di Discourse funzionante.
- Importare il backup scaricato per recuperare i contenuti (meno quanto accaduto dopo l’ultimo backup di Discourse).
Posso eseguire il rollback tramite DO (passo 2) e capirò come importare il backup esistente quando sarò arrivato a quel punto (passo 3), ma non so come ottenere il backup senza l’interfaccia web e con /admin/backups/ che restituisce errori HTTP 500.
Dove devo guardare per trovare il backup via SSH / cosa mi serve per poterlo ripristinare dopo aver eseguito il rollback al vecchio backup del Droplet tramite DO?
Cercando nei forum ho trovato solo argomenti relativi all’ospitare i backup su S3, ma non dove si trovano quando sono archiviati localmente.
