raf <raf@raf.org> writes:
> A colleague is getting this error when trying to load a
> database dump:
> pg_restore: error: could not execute query: ERROR: schema "public" already exists
> I'm wondering if anyone can explain it.
The public schema is a bit of a strange beast, and pg_dump has to
special-case it in some ways. We've moved those special cases around
from time to time, too. So one likely explanation here has to do
with version discrepancies between the pg_dump that made the dump
file and the pg_restore that's restoring it.
Also, I do not think that you're telling us the whole truth about
how your colleague is running pg_dump and/or pg_restore. There
shouldn't be any "CREATE SCHEMA public" issued if you didn't say -c.
regards, tom lane