escape von \. und \N bei pg_dump

Hallo!

Ich erzeuge (unter Debian) ein backupfile mit
pg_dump myDatabase > myBackupfile.sql

Dieses will ich dann mit psql und \i myBackupfile.sql
unter windows wieder einspielen.
Aber: im backupfile habe ich total viele . und \N, die nicht escaped sind, und einen ERROR erzeugen.

Was tun? Ich habe auch pg_dump -abo probiert

Nun, bevor jemand hier weiter schaut, ich habe selber erstmal gefunden, dass es nicht an \N und . liegen sollte - dies sind schlicht und einfach die null-werte bzw. daten-ende für den COPY befehl, das das pg_dump erzeugt.

Gute Beobachtung erstmal :wink:

Ist damit auch Dein Problem nun gelöst? Was war die Ursache, was die Lösung? Wäre nett, wenn Du das kundtun würdest - für andere mit ähnlichen Problemen.

Andreas

Das erste Problem war, dass ich nicht nach dem ERSTEN Fehler geschaut habe, der beim Einspielen der Daten auftrat.
(mal wieder gelernt, dass “schneller” sein oft das Gegenteil bewirkt)
Das zweite Problem war, dass sowohl PostGIS als auch TSearch2 Daten im backup-script enthalten waren, die aber in der DB, wo das backup eingespielt wurde, bereits da waren.
Da das backup auf Postgres 8.1 erstellt wird, aber in 8.2 importiert werden soll, editiere ich nun händisch :frowning: die backup Daten, um auf 8.2 die dortigen PostGIS und TSearch-Daten zu behalten und keine Fehler wegen doppelten inserts zu bekommen.

  • erst mit 8.2 gibt es wohl für pg_dump die Option einzelne Tabellen vom backup auszuschliessen, bzw. mehrere Tabellen explizit für das backup auszuwählen.