pg_restore: [archiver] input file does not appear to be a valid archive
Ok. Es wurde schon darauf verwiesen, dass die wiederherzustellende Datei “in one of the non-plain text format” vorliegen muss.
Aber wie kann ich das denn überprüfen bzw. beeinflussen? Beim pg_dump gebe ich ja kein Dateiformat an. Die Meldung kommt sowohl bei Angabe des Archives (dump.gz) als auch der entpackten Datei (dump), die übrigens keine Endung hat.
Es liegt also definitiv nicht am Inhalt der Datei?! Muss ich am pg_dump Befehl etwas ändern, z.B. explizite Angabe eines Formats?
DESCRIPTION
pg_restore is a utility for restoring a PostgreSQL database from an archive created by pg_dump(1) in one of the non-plain-text formats. It will
issue the commands necessary to reconstruct the database to the state it was in at the time it was saved. The archive files also allow pg_restore
to be selective about what is restored, or even to reorder the items prior to being restored. The archive files are designed to be portable across
architectures.
Ja. Soweit ganz nett…
Ich habe das mal so verstanden: pg_dump > alteDB sichert meine Daten und das Pendant pg_restore -d neueDB -f alteDB stellt sie wieder her.
Wenn also pg_dump eine Datei erzeugt, warum meckert dann pg_restore, dass das keine gültige Datei ist?! (vorher natürlich create neueDB)
Meine Frage daher: Müssen bei den Befehlen weitere Parameter angegeben werden, damit sie ihren Zweck erfüllen?
Oder warum kann pg_restore mit der Datei, die pg_dump erzeugt nixchts anfangen?
Ok. Manchaml reicht es eben nicht, nur kurz ins Manual zu schauen
Aus dem postgreSQL Manual:
pg_restore – restore a PostgreSQL database from an archive file created by pg_dump
Viel weiter unten steht ja auch, dass man bei Verwendung von pg_restore beim Aufruf von pg_dump den Zusatz -Fc (Custom archiv format) angeben muss. Bei archiv file habe ich da eher an eine gepackte Variante gedacht…