Meilleure façon de récupérer à partir de sauvegardes avec des plugins ?

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.

Il est rare que les plugins se mêlent de la base de données.

Jeff, le problème n’est pas qu’un plugin ne fonctionne pas.

Il semble que lors de la restauration d’une sauvegarde, vous deviez exécuter exactement la même version de Discourse et avoir installé les mêmes plugins que ceux utilisés à l’origine de la sauvegarde.

Cependant, lorsque vous récupérez une sauvegarde ancienne, vous ne savez pas exactement quelles versions et quels plugins étaient en cours d’exécution à ce moment-là.

Il serait utile de pouvoir lister la version et les plugins installés au moment de la création de la sauvegarde, directement depuis le fichier de sauvegarde et en les affichant dans l’interface de restauration.

Non, ce n’est pas vrai.

Utilisez-vous des plugins tiers ? À ma connaissance, cela ne se produira pas avec les plugins officiels de Discourse.

Donc, vous n’avez pas besoin d’exécuter exactement la même version que celle contenue dans la sauvegarde pour la restaurer ?
J’ai rencontré une erreur lors de la restauration et je pensais qu’elle était due à une différence de versions.

Avoir la possibilité de vérifier la version de Discourse et celle des plugins d’une sauvegarde avant la restauration serait utile.

J’utilise un seul plugin tiers : Topic List Preview.

J’ai pu restaurer la sauvegarde après plusieurs tentatives (sans rien modifier).
Curieusement, l’une d’elles s’est déroulée sans erreur.

Je vois que je n’étais pas le seul à rencontrer ce problème :