2009-11-25 16 views
25

Ich versuche, eine PostgreSQL-Datenbank durch Ausführen der SQL, die pg_dump erstellt, in einer leeren Datenbank wiederherzustellen.PostgreSQL: Datenbankwiederherstellung von Dump - Syntaxfehler

Ich erhalte diese Fehlermeldung:

ERROR: syntax error at or near "\" 
LINE 5211: \. 

Linien 5210 und 5211 lesen:

COPY auth_group (id, name) FROM stdin; 
\. 

Es funktioniert gut auf meinem Linux-Server, wo ich diesen Befehl verwenden:

psql -U dbname < dumpfile.sql

aber unter Windows bin ich mir nicht sicher, wie mach dasselbe, also habe ich versucht, die sql der dumpfile von pgAdminIII query-Dienstprogramm zu starten.

Was ist der empfohlene Weg zum Importieren einer db von einem Dump unter Windows? Oder: Wie kann dieses Syntaxproblem gelöst werden?

Jede Hilfe wird sehr geschätzt!

Martin

Antwort

68

Das -f filename Argument auf psql in der Datei gelesen werden, so dass Sie mit dem Rohr hat es nicht in. Psql sollte in PostgreSQL bin-Verzeichnis in Windows enthalten sein. Wie so:

psql -d dbname -U username -f dumpfile.sql 

Sie müssen möglicherweise einen vollständigen Pfad zum psql ausführbaren enthalten, wenn es nicht auf dem Weg ist, und mögliche add „.exe“ psql, so ist es ‚psql.exe‘.

Auch stellen Sie sicher, dass Sie nicht in Versionsnummern gehen, habe ich in Syntaxprobleme zuvor (z. B. exportieren Sie nicht eine Datenbank 8.4 und versuchen, es in eine 8.1-Datenbank zu laden). Wenn dies der Fall ist, müssen Sie die Speicherabbilddatei möglicherweise manuell bearbeiten.

+1

Das ist für mich gearbeitet, als ein Abbild mit Navicat zu importieren versuchen, die alle Arten von Syntaxfehlern werfen. Vom OS X-Terminal aus funktionierte es einwandfrei. –

27

versuchen mit psql -d dbname -U Benutzern -f dumpfile.sql

+0

danke kai, ich gebe dir wenigstens ein up-vote ..! – Hoff

Verwandte Themen