Je viens de tenter de mettre à jour mon installation Discourse vers la dernière version bêta (2.4.0 bêta 11) via la mise à jour web, et elle est désormais inaccessible (essayez par vous-même, cela renvoie des erreurs HTTP 500).
Contexte
Ma version installée était encore la 2.4.0 bêta 6, je tentais de passer à la 2.4.0 bêta 11.
Je pense que j’avais une installation assez standard ; je ne me souviens pas si j’avais des plugins personnalisés (et je ne peux plus le vérifier maintenant), mais au maximum 1 ou 2. J’ai conservé la plupart des paramètres par défaut de Discourse.
Ce que j’ai fait
J’ai cliqué sur le lien de mise à jour en un clic dans l’e-mail de notification de mise à jour que j’ai reçu, ce qui m’a conduit à /admin/upgrade.
Selon le mise à jour web, je devais d’abord effectuer une mise à jour du gestionnaire Docker avant de pouvoir mettre à jour la version réelle de Discourse, alors j’ai choisi cette option. Quelques opérations se sont déroulées et, après environ la moitié de la progression, un message s’est affiché au-dessus de l’écran de sortie du journal web indiquant qu’une erreur s’était produite pendant la mise à jour et qu’il fallait consulter les journaux. J’ai parcouru les journaux, mais rien ne m’a immédiatement sauté aux yeux. Malheureusement, je n’ai pas réussi à sauvegarder le journal et j’ai simplement rechargé la page, espérant pouvoir simplement réessayer l’installation et supposant que l’échec avait provoqué un retour arrière de la mise à jour.
Curieusement, la page admin/upgrade/ m’a ensuite indiqué que le docker_manager était à jour et ne nécessitait plus de mise à jour, alors j’ai (très probablement à tort) supposé que la mise à jour avait effectivement réussi et que le message d’erreur était un bug. J’ai également vérifié si mon forum fonctionnait toujours, ce qui était le cas, et il ne semblait avoir aucun problème.
On m’a alors présenté l’option de mettre à jour l’installation Discourse elle-même (qui était auparavant grisée), alors je l’ai fait. À nouveau, des opérations ont été consignées dans la sortie du journal, que je n’ai pas vraiment examinées, et après environ la moitié de la barre de progression remplie, un message d’erreur similaire s’est affiché au-dessus de la sortie du journal indiquant qu’une erreur s’était produite.
J’ai pensé faire la même chose qu’avant : recharger la page (encore une fois, je n’ai malheureusement pas sauvegardé le journal). Et comme prévu, Discourse était désormais listé comme « à jour ».
Voici ce que je vois actuellement sous admin/upgrade/ :
Mais le forum réel ne fonctionne plus et renvoie uniquement des erreurs 500.
Ce qui fonctionne encore
/admin/upgrade/fonctionne toujours et indique que Discourse est à jour.- Je peux également cliquer sur l’onglet « Processes » et obtenir la liste des processus en cours d’exécution.
Mais même l’onglet Backups renvoie déjà une erreur 500, tout comme /admin. Je n’ai trouvé aucune partie du forum qui fonctionne sauf les deux onglets sous /admin/upgrade/.
Comment récupérer ?
Je n’ai pas de bonne idée de ce qui s’est mal passé et je ne sais pas non plus par où commencer. Je ne sais même pas comment accéder aux journaux pour déterminer quelle était l’erreur sans l’interface web. L’installation Discourse est hébergée sur Digital Ocean et je peux me connecter en SSH à la machine et probablement au conteneur, mais je ne sais pas où chercher les journaux.
Un indice sur l’endroit où chercher les journaux serait grandement apprécié.
Pour l’instant, ma meilleure idée est de revenir à une sauvegarde et de perdre tout ce qui a été publié après la dernière sauvegarde (heureusement, il n’y a pas beaucoup de trafic, donc perdre une journée de contenu est acceptable).
Mon plan actuel et ce qui me manque
J’ai configuré Digital Ocean pour effectuer des sauvegardes hebdomadaires du Droplet et je crois que mon installation Discourse était configurée pour des sauvegardes quotidiennes. Je n’ai jamais configuré S3, donc elles devraient toujours être sauvegardées localement. La sauvegarde du Droplet Digital Ocean date de 5 jours, cependant, je préférerais ne pas perdre le contenu des derniers jours.
Mon plan approximatif consiste essentiellement à revenir via des sauvegardes à un état fonctionnel connu en faisant ce qui suit :
- Télécharger la sauvegarde Discourse d’aujourd’hui ou d’hier.
- Restaurer l’ensemble du Droplet via Digital Ocean vers la dernière sauvegarde de 5 jours, afin d’avoir à nouveau une installation Discourse fonctionnelle.
- Importer la sauvegarde téléchargée pour récupérer le contenu (moins ce qui s’est passé après la dernière sauvegarde Discourse).
Je peux effectuer la restauration via DO (étape 2) et je trouverai comment importer la sauvegarde existante lorsque j’y serai (étape 3), mais je ne sais pas comment accéder à la sauvegarde sans l’interface web et avec /admin/backups/ renvoyant des erreurs HTTP 500.
Où dois-je chercher pour trouver la sauvegarde via SSH / de quoi ai-je besoin pour pouvoir la restaurer après avoir restauré l’ancien Droplet via DO ?
En parcourant les forums, j’ai seulement trouvé des sujets concernant l’hébergement des sauvegardes sur S3, mais pas où elles se trouvent lorsqu’elles sont stockées localement.
