pg_restore: [archiver] did not find magic string in file header
You're restoring with pg_restore --format=c ...
but the pg_dump
was not done with --format=c
, it was done with the default, plain format.
From pg_dump
manpage:
-F format, --format=format Selects the format of the output. format can be one of the following: p, plain Output a plain-text SQL script file (the default).
A dump in plain format should be fed directly to the psql
command-line tool, pg_restore
doesn't know what it is, which is the reason of this error message: did not find magic string in file header.
You can look directly at the dump file with more out.sql
in shell and you'll see readable SQL commands. Restore it with psql -f out.sql [other options]
. You will probably want to create the target database first, as the --create
option is not present in the pg_dump
invocation.
On the other hand, you may reinvoke the dump adding --format=c
to its options. Then that would be the opposite: pg_restore
must be used to interpret a dump file in the custom format.