Wir wechseln den Host und der alte hat einen SQL-Dump der PostgreSQL-Datenbank unserer Site bereitgestellt.
Jetzt versuche ich, dies auf einem lokalen WAMP-Server einzurichten, um dies zu testen.
Das einzige Problem ist, dass ich keine Ahnung habe, wie diese Datenbank in das von mir eingerichtete PostgreSQL 9 importiert werden soll.
Ich habe pgAdmin III ausprobiert, aber ich kann anscheinend keine Importfunktion finden. Also habe ich gerade den SQL-Editor geöffnet und den Inhalt des Dumps dort eingefügt und ausgeführt. Er erstellt die Tabellen, gibt mir aber immer wieder Fehler, wenn er versucht, die Daten darin abzulegen.
ERROR: syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...
The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view nl ...
Ich habe auch versucht, dies mit der Eingabeaufforderung zu tun, aber ich kann den benötigten Befehl nicht finden.
Wenn ich mache
psql mydatabase < C:/database/db-backup.sql;
Ich bekomme den Fehler
ERROR: syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
^
Wie kann die Datenbank am besten importiert werden?
quelle
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.Antworten:
Das ist der Befehl, den Sie suchen.
Achtung:
databasename
muss vor dem Import erstellt werden. Schauen Sie sich die PostgreSQL-Dokumente in Kapitel 23 an. Sichern und Wiederherstellen .quelle
-f
Schalter (oder--file
) verwendenHier ist der Befehl, den Sie suchen.
quelle
pg_restore -h hostname -d dbname -U username filename.sql
Ich glaube, dass Sie in psql laufen wollen:
quelle
Das hat bei mir funktioniert:
quelle
Ich bin nicht sicher, ob dies für die Situation des OP funktioniert, aber ich fand, dass das Ausführen des folgenden Befehls in der interaktiven Konsole die flexibelste Lösung für mich war:
Stellen Sie einfach sicher, dass Sie bereits mit der richtigen Datenbank verbunden sind. Dieser Befehl führt alle SQL-Befehle in der angegebenen Datei aus.
quelle
psql
Befehlszeile auszuführen . Vielen Dank!Funktioniert ziemlich gut, in der Kommandozeile sind alle Argumente erforderlich, -W steht für Passwort
quelle
Nur zum Spaß, wenn Ihr Dump komprimiert ist, können Sie so etwas tun
gunzip -c filename.gz | psql dbname
Wie Jacob erwähnte, beschreiben die PostgreSQL-Dokumente dies alles recht gut.
quelle
Ich benutze:
Hoffe das wird jemandem helfen.
quelle
Sie können es in pgadmin3 tun. Löschen Sie die Schemas, die Ihr Dump enthält. Klicken Sie dann mit der rechten Maustaste auf die Datenbank und wählen Sie Wiederherstellen. Dann können Sie nach der Dump-Datei suchen.
quelle
Mir ist aufgefallen, dass viele Beispiele für localhost überkompliziert sind, bei denen in vielen Fällen nur Postgres-Benutzer ohne Passwort existieren:
quelle
Stellen Sie sicher, dass die Datenbank, in die Sie importieren möchten, erstellt wurde. Anschließend können Sie den Speicherauszug mit importieren
Wenn Sie die gesamte Datenbank überschreiben möchten, löschen Sie zuerst die Datenbank
und dann neu erstellen mit
quelle
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ückenSPACE
und eingebenpgadmin4
, um es auszuführen. Dadurch wird eine Browser-Registerkarte in Chrome geöffnet.Schritte zum Abrufen / Wiederherstellen von pgadmin4 +
1. Erstellen Sie das Backup
Klicken Sie dazu mit der rechten Maustaste auf die Datenbank -> "Backup"
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 vorliegt3. 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
4. Suchen Sie den Speicherort der heruntergeladenen Datei
In diesem Fall ist es
/users/vincenttang
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"
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:
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"
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
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"
Führen Sie diesen Codeblock aus:
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 getestetquelle