Nous avons récemment migré de vBulletin vers Discourse.
Nous apprenons encore à utiliser Discourse et ses outils.
L’une de mes préoccupations est la reprise après sinistre.
Nous conservons des instantanés automatiques pendant une longue période.
Nous effectuons des sauvegardes quotidiennes à l’aide des outils intégrés à Discourse et les stockons dans un bucket S3 pendant 15 jours.
La restauration à partir d’un instantané est assez simple.
L’idée est de restaurer le dernier instantané fonctionnel disponible, puis d’utiliser la dernière sauvegarde disponible pour restaurer le contenu.
J’avais besoin d’une machine de test pour essayer certains plugins Discourse.
C’était donc une bonne occasion de tester notre plan de reprise après sinistre.
Mais au lieu d’utiliser un instantané, j’ai tenté une restauration à partir de zéro (au cas où tout irait mal et que nous devrions repartir de zéro pour restaurer une sauvegarde disponible).
J’ai créé une machine Debian, mis à jour le logiciel et installé Discourse à partir de zéro (sans plugins, juste le strict minimum).
J’ai configuré HTTPS pour que cela fonctionne, puis j’ai tenté de restaurer la dernière sauvegarde.
La restauration a échoué lors de la mise à jour de la base de données.
Le système a signalé l’absence de certaines colonnes dans certaines tables. Il a effectué un retour arrière et j’ai retrouvé exactement le même contenu : presque rien.
En lisant les erreurs et certains fils de discussion ici, j’ai réalisé que cela pourrait être dû à des versions différentes de Discourse.
J’ai vérifié. Effectivement, le nouveau forum était sur une version légèrement plus récente que l’originale.
J’ai mis à jour le forum original vers la dernière version et effectué une sauvegarde.
J’ai tenté de restaurer cette sauvegarde, mais elle a de nouveau échoué avec des erreurs similaires.
Il se pourrait donc que le nouveau forum n’ait pas les mêmes plugins installés.
J’ai donc modifié app.yml pour installer ces plugins, reconstruit l’application et réessayé.
Cette fois, cela a fonctionné correctement.
Mais cela m’a inquiété.
Si vous devez restaurer une sauvegarde sur une machine avec exactement les mêmes plugins et versions installés, il sera très difficile d’obtenir une restauration réussie.
Cette fois, mon ancien forum était opérationnel, ce qui permettait de vérifier facilement les versions et de le mettre à jour vers la dernière version.
Mais lors d’une récupération après sinistre, vous n’avez pas la possibilité de vérifier les versions ou de mettre à jour le logiciel.
Comment résolvez-vous ce problème ?
La sauvegarde contient-elle des informations sur les plugins installés, ainsi que sur les versions de Discourse et des plugins ?
Comment créer une instance Discourse de base avec les versions appropriées de Discourse et des plugins afin de correspondre à celles de votre sauvegarde ?
Merci d’avance pour vos conseils.