Beste Methode zur Wiederherstellung aus Backups mit Plugins?

Wir haben kürzlich von vBulletin auf Discourse umgestellt.

Wir lernen noch, wie man Discourse und seine Tools nutzt.

Eine meiner Sorgen ist die Katastrophenwiederherstellung.

Wir haben automatische Snapshots, die wir über einen langen Zeitraum aufbewahren.

Wir erstellen tägliche Backups mit den integrierten Tools von Discourse und speichern diese für 15 Tage in einem S3-Bucket.

Die Wiederherstellung aus einem Snapshot ist ziemlich unkompliziert.

Die Idee besteht darin, vom letzten funktionierenden Snapshot wiederherzustellen und dann das letzte verfügbare Backup zu verwenden, um den Inhalt wiederherzustellen.

Ich benötigte einen Testrechner, um einige Discourse-Plugins zu testen.

Das war also eine gute Gelegenheit, meinen Plan zur Katastrophenwiederherstellung zu erproben.

Anstatt jedoch einen Snapshot zu verwenden, habe ich versucht, von Grund auf neu wiederherzustellen (nur für den Fall, dass alles schiefgeht und wir von vorne beginnen müssen, um ein verfügbares Backup wiederherzustellen).

Ich habe eine Debian-Maschine erstellt, die Software aktualisiert und Discourse von Grund auf neu installiert (ohne Plugins, nur das absolute Minimum).

Ich habe HTTPS konfiguriert, damit es funktioniert, und danach versucht, das letzte Backup wiederherzustellen.

Es ist beim Aktualisieren der Datenbank fehlgeschlagen.

Es wurden Fehler bezüglich fehlender Spalten in einigen Tabellen gemeldet. Es wurde zurückgerollt, und ich hatte wieder denselben Inhalt: fast nichts.

Nachdem ich die Fehlermeldungen und einige Threads hier gelesen hatte, wurde mir klar, dass dies möglicherweise auf unterschiedliche Discourse-Versionen zurückzuführen ist.

Ich habe das überprüft. Ja, das neue Forum hatte eine etwas neuere Version als das ursprüngliche.

Ich habe das ursprüngliche Forum auf die neueste Version aktualisiert und ein Backup erstellt.

Ich habe versucht, es wiederherzustellen, und es ist erneut mit ähnlichen Fehlern gescheitert.

Möglicherweise waren im neuen Forum nicht dieselben Plugins installiert.

Also habe ich die app.yml so angepasst, dass die Plugins installiert werden, die App neu erstellt und es erneut versucht.

Dieses Mal hat es gut funktioniert.

Aber es hat mich beunruhigt.

Wenn Sie das Backup auf einer Maschine wiederherstellen müssen, auf der exakt dieselben Plugins und Versionen installiert sind, wird eine erfolgreiche Wiederherstellung ziemlich schwierig sein.

Diesmal war mein altes Forum online und es war einfach, die Versionen zu überprüfen und es auf die neueste Version zu aktualisieren.

Aber wenn Sie sich von einer Katastrophe erholen, haben Sie keine Möglichkeit, Versionen zu überprüfen oder die Software zu aktualisieren.

Wie lösen Sie das?

Enthält das Backup Informationen über die installierten Plugins sowie die Discourse- und Plugin-Versionen?

Wie erstellen Sie eine grundlegende Discourse-Instanz mit den entsprechenden Discourse- und Plugin-Versionen, um diese mit denen Ihres Backups abzugleichen?

Vielen Dank im Voraus für Ihre Anleitung.

Es ist selten, dass Plugins mit der Datenbank herumspielen.

Jeff, das Problem ist nicht, dass ein Plugin nicht funktioniert.

Es scheint, dass Sie beim Wiederherstellen eines Backups exakt dieselbe Discourse-Version ausführen müssen und dieselben Plugins installiert haben müssen, die Sie am Ursprungsort des Backups verwendet haben.

Wenn Sie jedoch ein Backup von vor einiger Zeit wiederherstellen, wissen Sie nicht genau, welche Versionen und Plugins Sie zu diesem Zeitpunkt verwendet haben.

Es wäre hilfreich, wenn Sie aus der Backup-Datei die Version und die installierten Plugins zum Zeitpunkt der Erstellung des Backups abrufen und im Wiederherstellungsmenü anzeigen lassen könnten.

Nein, das ist nicht richtig.

Verwendest du Plugins von Drittanbietern? Meines Wissens nach tritt dies bei offiziellen Discourse-Plugins nicht auf.

Man muss also nicht exakt dieselbe Version wie die Sicherung haben, um sie wiederherzustellen?
Ich hatte beim Wiederherstellen einen Fehler und dachte, das liege daran, dass die Versionen nicht übereinstimmten.

Es wäre hilfreich, vor der Wiederherstellung die Discourse-Version und die Plugin-Version einer Sicherung prüfen zu können.

Ich verwende nur ein Drittanbieter-Plugin: Topic List Preview.

Nach mehreren Versuchen (ohne etwas zu ändern) konnte ich die Sicherung schließlich wiederherstellen.
Seltsamerweise lief einer der Versuche ohne Fehler ab.

Ich konnte sehen, dass ich nicht der Einzige mit diesem Problem war: