Il modo più semplice per farlo è rinominare gli schemi. Tuttavia devi essere sicuro di essere un utente unico del database db1.
Per prima cosa, nascondi il tuo schema public in db1:
alter schema public rename to original_public;
create schema public;
Quindi, esegui il backup e il ripristino:
$ pg_dump --format custom --file "my_backup" --schema "public" "db2"
$ pg_restore --dbname "db1" "my_backup"
Infine, ricrea i nomi degli schemi appropriati:
alter schema public rename to my_schema;
alter schema original_public rename to public;
Un'altra opzione è usare dblink. Consente l'accesso ai dati di diversi database.