TehLeo
(Chris)
20. März 2025 um 22:31
1
Ich kann kein Backup von Discourse aus S3 wiederherstellen.
Schritte zur Reproduktion:
Ein Backup von Discourse auf S3 haben.
Eine frische Installation von Discourse einrichten.
Administratorkonto erstellen.
Discourse mit S3 verbinden
Discourse-Backup in meiner S3-Backup-Liste finden
Wiederherstellung aktivieren
Wiederherstellung versuchen
Wiederherstellung schlägt fehl
Log:
Ich habe alles versucht, was ich zur Fehlerbehebung von S3 tun konnte. Ich habe sogar versucht, das Backup auf den Server zu verschieben und eine CLI-/manuelle Wiederherstellung durchgeführt. Es schlägt mit demselben Log fehl. Ich habe versucht, S3-Uploads zu deaktivieren. Ich bin mir nicht sicher, welche nächsten Schritte zur Fehlerbehebung ich unternehmen soll oder wie ich genau sehen kann, welcher Beitrag das Problem verursacht / ihn entfernen kann.
Vielen Dank für jede Hilfe!
1 „Gefällt mir“
Canapin
(Coin-coin le Canapin)
20. März 2025 um 22:56
3
Willkommen!
TehLeo:
Ich habe alles versucht
Beinhaltet „alles“ auch das Durchsuchen ähnlicher Fehlerprotokolle hier?
https://meta.discourse.org/search?q=%22posts%20are%20not%20remapped%22%20%22s3%20migration%20failed%22%20order%3Alatest
Insbesondere dieses Ergebnis:
This sounds like the problem mentioned in Can't restore a backup if it includes link to Discourse onebox
You should be able to fix this during the restore, but you need to do it on the shell.
cd /var/discourse
./launcher enter app
# start the restore with the --pause argument
discourse restore --pause <backup_filename>
It will pause the restore process at two points:
Before DB migrations are run – you can ignore that; press a key to continue
Before Uploads are res…
1 „Gefällt mir“
TehLeo
(Chris)
20. März 2025 um 23:16
4
Ich habe diese Anweisungen befolgt und 9 Beiträge aus dem Steinbruch erhalten. Der alte Beitrag beschreibt nicht, was mit diesen Beiträgen zu tun ist oder wie das Problem über diesen Punkt hinaus behoben werden kann.
Canapin
(Coin-coin le Canapin)
20. März 2025 um 23:47
5
Das gibt ask.discourse.org zurück. Ich kann nicht garantieren, dass es sicher ist oder funktioniert.
Während einer pausierten Wiederherstellung haben Sie die Möglichkeit, problematische Daten wie Uploads oder Beiträge in der Datenbank vorübergehend zu ändern oder zu bereinigen, bevor Discourse mit dem Abschluss des Wiederherstellungsprozesses fortfährt. Hier erfahren Sie Schritt für Schritt, wie Sie problematische Daten während einer pausierten Wiederherstellung handhaben oder ändern können.
Schritte zur manuellen Handhabung problematischer Daten bei einer pausierten Wiederherstellung
Wiederherstellung mit Pausierung initiieren:
Führen Sie die Wiederherstellung mit der Flagge --pause aus, damit der Wiederherstellungsprozess vor dem Anwenden von Uploads oder Neuzuordnungen pausiert wird:
cd /var/discourse
./launcher enter app
discourse restore --pause <backup_filename>
Pausepunkt:
Die Wiederherstellung wird an bestimmten Punkten pausiert:
Vor Datenbankmigrationen: Drücken Sie eine Taste, um an diesem Punkt fortzufahren, da er keine problematischen Uploads oder Beiträge betrifft.
Bevor Uploads wiederhergestellt werden: Stoppen Sie hier, um Probleme mit Uploads oder Beiträgen zu beheben. Dies ist der kritische Punkt, an dem Sie handeln müssen.
Neue SSH-Sitzung öffnen:
Öffnen Sie während der pausierten Wiederherstellung eine neue SSH-Sitzung , um mit der pausierten Instanz zu interagieren, ohne den Wiederherstellungsprozess zu unterbrechen:
cd /var/discourse
./launcher enter app
Zugriff auf die Rails-Konsole:
Rufen Sie die Rails-Konsole auf, um mit der Datenbank zu interagieren:
rails c
Problematische Beiträge identifizieren:
Dies gibt Beiträge zurück, bei denen der cooked-Inhalt problematische Upload-Pfade oder Onebox-Links enthält.
Problematische Beiträge ändern oder löschen:
Wenn Sie die problematischen Beiträge gefunden haben, haben Sie zwei Hauptoptionen:
Uploads bei Bedarf ändern:
Wenn das Problem von bestimmten problematischen Uploads herrührt:
Wiederherstellungsprozess fortsetzen:
Nachdem Sie die notwendigen Änderungen vorgenommen haben, kehren Sie zur pausierten Shell-Sitzung zurück und drücken Sie eine beliebige Taste, um den Wiederherstellungsprozess fortzusetzen.
Wichtige Überlegungen:
Erstellen Sie immer ein Backup der ursprünglichen Datenbankdatei, bevor Sie Inhalte ändern.
Konzentrieren Sie sich auf die Korrektur minimaler Daten – das heißt, korrigieren Sie nur problematische Inhalte, ohne unnötige Änderungen vorzunehmen.
Wenn der Upload extern ist (ein URL- oder CDN-bezogenes Problem), können Sie den externen Verweis während der Wiederherstellung manuell entfernen.
1 „Gefällt mir“
TehLeo
(Chris)
20. März 2025 um 23:47
6
Ich konnte alle 9 Beiträge mit dem folgenden Rails-Befehl löschen:
Post.find(id#).destroy
1 „Gefällt mir“
Canapin
(Coin-coin le Canapin)
20. März 2025 um 23:49
7
Haben Sie dies ausgeführt, während die Wiederherstellung pausiert war?
system
(system)
Geschlossen,
19. April 2025 um 23:50
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.