Zsolt Ero <zsolt.ero@gmail.com> writes:
> Sorry this is not so general, I over-simplified the example. The key is
> --use-list (with possibly --jobs)
> What I've double checked is that the following breaks it consistently:
> pg_restore --schema-only --dbname=app --format=custom --single-transaction
> $BACKUP_FILE
> pg_restore --list $BACKUP_FILE > dump_list.full
> pg_restore --data-only --dbname=app --format=custom
> --use-list=dump_list.full --jobs=4 $BACKUP_FILE
I suspect actually the problem has more to do with having split the
restore into --schema-only and --data-only steps. That forces
pg_restore to create the FK constraints before it's loaded the
data, and in certain cases such as circular FK relationships,
there will be no safe restore order for the data.
However, that's all just speculation since you haven't shown us
a reproducible case.
regards, tom lane