Ich habe viele verschiedene Lösungen zum Wiederherstellen meines Postgres-Backups ausprobiert. Unter MacOS stieß ich auf Probleme, denen die Erlaubnis verweigert wurde. Es schienen keine Lösungen zu funktionieren.
So habe ich es zum Laufen gebracht:
Postgres wird mit Pgadmin4 geliefert. Wenn Sie macOS verwenden, können Sie CMD
+ drücken SPACE
und eingeben pgadmin4
, um es auszuführen. Dadurch wird eine Browser-Registerkarte in Chrome geöffnet.
Wenn Sie auf Fehler stoßen, damit pgadmin4 funktioniert, versuchen Sie es killall pgAdmin4
in Ihrem Terminal und versuchen Sie es erneut.
Schritte zum Abrufen / Wiederherstellen von pgadmin4 +
1. Erstellen Sie das Backup
Klicken Sie dazu mit der rechten Maustaste auf die Datenbank -> "Backup"
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/2hQt9.png)
2. Geben Sie der Datei einen Namen.
Wie test12345
. Klicken Sie auf Sichern. Dadurch wird ein Binärdateidump erstellt, der nicht in einem .sql
Format vorliegt
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/FyEZm.png)
3. Sehen Sie, wo es heruntergeladen wurde
Unten rechts auf Ihrem Bildschirm sollte sich ein Popup befinden. Klicken Sie auf die Seite "Weitere Details", um zu sehen, wohin Ihr Backup heruntergeladen wurde
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/5cXqM.png)
4. Suchen Sie den Speicherort der heruntergeladenen Datei
In diesem Fall ist es /users/vincenttang
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/vJiyy.png)
5. Stellen Sie die Sicherung von pgadmin wieder her
Angenommen, Sie haben die Schritte 1 bis 4 korrekt ausgeführt, haben Sie eine Wiederherstellungs-Binärdatei. Es kann vorkommen, dass Ihr Mitarbeiter Ihre Wiederherstellungsdatei auf seinem lokalen Computer verwenden möchte. Habe gesagt, Person gehe zu pgadmin und stelle wieder her
Klicken Sie dazu mit der rechten Maustaste auf die Datenbank -> "Wiederherstellen"
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/bAUhb.png)
6. Wählen Sie den Dateisucher
Stellen Sie sicher, dass Sie den Speicherort der Datei manuell auswählen. Ziehen Sie eine Datei NICHT per Drag & Drop auf die Uploader-Felder in pgadmin. Weil Sie auf Fehlerberechtigungen stoßen. Suchen Sie stattdessen die gerade erstellte Datei:
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/0FL3F.png)
7. Suchen Sie die Datei
Möglicherweise müssen Sie den Filter unten rechts auf "Alle Dateien" ändern. Suchen Sie die Datei anschließend ab Schritt 4. Klicken Sie zur Bestätigung auf die untere rechte Schaltfläche "Auswählen"
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/woFcW.png)
8. Stellen Sie die Datei wieder her
Diese Seite wird erneut mit dem Speicherort der ausgewählten Datei angezeigt. Fahren Sie fort und stellen Sie es wieder her
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/i7cTv.png)
9. Erfolg
Wenn alles in Ordnung ist, sollte unten rechts ein Indikator für eine erfolgreiche Wiederherstellung angezeigt werden. Sie können zu Ihren Tabellen navigieren, um festzustellen, ob die Daten für jede Tabelle ordnungsgemäß wiederhergestellt wurden.
10. Wenn es nicht erfolgreich war:
Sollte Schritt 9 fehlschlagen, löschen Sie Ihr altes öffentliches Schema in Ihrer Datenbank. Gehen Sie zu "Abfrage-Tool"
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/bqmyP.png)
Führen Sie diesen Codeblock aus:
DROP SCHEMA public CASCADE; CREATE SCHEMA public;
![Geben Sie hier die Bildbeschreibung ein](https://i.stack.imgur.com/BaHyr.png)
Versuchen Sie nun die Schritte 5 bis 9 erneut, es sollte funktionieren
Zusammenfassung
Auf diese Weise musste ich meine Sicherung auf Postgres sichern / wiederherstellen, wenn ich Probleme mit der Fehlerberechtigung hatte und mich nicht als Superuser anmelden konnte. Oder legen Sie Anmeldeinformationen für Lesen / Schreiben mit chmod
Ordnern fest. Dieser Workflow funktioniert für einen Binärdateidump-Standardwert von "Benutzerdefiniert" von pgadmin. Ich gehe davon aus, dass .sql
es genauso ist, aber ich habe das noch nicht getestet
ERROR: syntax error at or near "t"
. Es stellte sich heraus, dass ich nur ein Teilschema importiert hatte und daher eineCREATE TABLE
Anweisung früher im Skript fehlgeschlagen war. Sehen Sie sich die vollständige Ausgabe des Imports an, um sie zu finden.