La façon la plus simple de le faire est de renommer les schémas. Cependant, vous devez être sûr que vous êtes un utilisateur unique de la base de données db1.
Tout d'abord, masquez votre schéma public dans db1 :
alter schema public rename to original_public;
create schema public;
Ensuite, effectuez la sauvegarde et la restauration :
$ pg_dump --format custom --file "my_backup" --schema "public" "db2"
$ pg_restore --dbname "db1" "my_backup"
Enfin, recréez les noms de schéma appropriés :
alter schema public rename to my_schema;
alter schema original_public rename to public;
Une autre option consiste à utiliser dblink. Il permet d'accéder aux données de différentes bases de données.