Dies ist eine sehr komprimierte Version meiner letzten 24 Stunden, obwohl es bisher noch nicht funktioniert hat, daher hoffe ich auch, dass jemand unten postet, wo es schief gelaufen ist.
Mein Discourse-Update ist aufgrund eines doppelten Schlüssels fehlgeschlagen, eines meiner Tags ist doppelt vorhanden. Um das Update-Problem zu beheben, musste ich eine neue Discourse-Installation durchführen und dann mein letztes Backup laden, aber das Laden schlägt fehl, da es wegen des doppelten Schlüssels meckert. Also musste ich in das Backup gehen, um das fehlerhafte Tag in etwas anderes zu ändern.
Aus irgendeinem Grund ist das neu gezippte Backup mit dem behobenen Problem des doppelten Tags deutlich kleiner als das Backup, aus dem es stammt, und schlägt fehl, wenn ich versuche, es wiederherzustellen, sodass bei der Neukomprimierung etwas schief gelaufen ist.
1) Backups finden: Um Ihre Discourse-Backups zu finden, können Sie den folgenden Befehl verwenden:
sudo find / -name "*.tar.gz"
Dadurch wird Ihr System nach allen Backup-Dateien mit der Erweiterung “.tar.gz” durchsucht. Standardmäßig sollte es sich in Ihrem Container unter folgendem Pfad befinden: shared/backups/default
2) Eine Kopie erstellen: Sobald Sie das gewünschte Backup gefunden haben, erstellen Sie eine Kopie davon, um sicherzustellen, dass Sie eine Sicherung der Originaldatei haben. Verwenden Sie den Befehl “cp”:
bash
sudo cp /pfad/zum/original_backup.tar.gz /pfad/zur/kopie_backup.tar.gz
3) Die Kopie extrahieren: Extrahieren Sie den Inhalt der kopierten Backup-Datei mit dem Befehl “tar”:
bash
tar -xzvf /pfad/zur/kopie_backup.tar.gz
Dadurch werden die Backup-Dateien in ein temporäres Verzeichnis extrahiert.
4) Tags in der Datenbank bearbeiten: Navigieren Sie zu den extrahierten Backup-Dateien und öffnen Sie die relevante Datenbankdatei mit einem Texteditor. Ich hatte ein Problem mit doppelten “socialmedia”-Tags, was eine erfolgreiche Wiederherstellung verhinderte. In einer großen Datenbank gibt es viele Instanzen von Tags, und wahrscheinlich auch für das spezifische Tag, nach dem Sie suchen. Daher habe ich mit Strg+W in Nano nach ‘immutable socialmedia’ gesucht, was mich direkt dorthin gebracht hat.
sudo nano /pfad/zur/extrahierten_datenbank.sql
Ich habe eine Instanz des “socialmedia”-Tags in “socialmedia2” geändert und dann schnell gesucht, um zu überprüfen, ob es jetzt nur noch einmal vorkommt. Ich kann diese Tags im Admin-Bereich beheben, sobald die Wiederherstellung erfolgreich ist.
5) Neu komprimieren: Nachdem Sie die Backup-Dateien bearbeitet haben, erstellen Sie eine neue Backup-Datei mit dem korrigierten Inhalt. Verwenden Sie den folgenden Befehl, um die geänderten Dateien zu komprimieren:
tar -czvf /pfad/zur/neuen_geänderten_backup.tar.gz /pfad/zum/verzeichnis_mit_geänderten_dateien
6) In die richtige Datei verschieben: Verschieben Sie die neue geänderte Backup-Datei in das entsprechende Verzeichnis, in dem Backups gespeichert werden. Der Standardspeicherort ist normalerweise “/shared/backups/default”:
sudo mv /pfad/zur/neuen_geänderten_backup.tar.gz /shared/backups/default/
7) Dienste stoppen und starten: Bevor Sie das geänderte Backup wiederherstellen, stellen Sie sicher, dass Sie die relevanten Dienste stoppen, um potenzielle Konflikte während des Wiederherstellungsprozesses zu vermeiden. Verwenden Sie den Befehl “./launcher stop app”, um die Discourse-Anwendung zu stoppen:
./launcher stop app
8) Backup wiederherstellen: Um aus dem geänderten Backup wiederherzustellen, verwenden Sie den Befehl “discourse restore” mit dem Pfad zur neuen Backup-Datei:
discourse restore /shared/backups/default/neue_geänderte_backup.tar.gz
Oder Sie können es über /admin auf Ihrer Website tun, da es jetzt im Backup-Bereich erscheinen sollte.
9) Wiederherstellung überprüfen: Nachdem der Wiederherstellungsprozess abgeschlossen war, habe ich überprüft, ob die Änderungen erfolgreich waren, indem ich die Discourse-Anwendung und die Datenbank überprüft habe, um sicherzustellen, dass die doppelten “socialmedia”-Tags entfernt wurden.
10) Dienste starten: Ich habe die zuvor gestoppten Dienste neu gestartet, um die Discourse-Anwendung wieder online zu bringen. Ich habe den Befehl “./launcher start app” verwendet, um die Discourse-Anwendung zu starten:
./launcher start app
11) Temporäre Dateien und zusätzliche Backups löschen: Nachdem das Backup erfolgreich wiederhergestellt wurde, habe ich alle temporären Dateien und zusätzlichen Backups gelöscht, die während des Prozesses erstellt wurden, um Speicherplatz freizugeben. Verwenden Sie den Befehl “rm”, um die Dateien zu entfernen:
sudo rm -r /pfad/zum/temporären_verzeichnis
sudo rm /pfad/zur/kopie_backup.tar.gz
