A maneira mais simples de fazer isso é renomear esquemas. No entanto, você deve ter certeza de que é um usuário único do banco de dados db1.
Primeiro, esconda seu esquema público em db1:
alter schema public rename to original_public;
create schema public;
Em seguida, faça o backup e a restauração:
$ pg_dump --format custom --file "my_backup" --schema "public" "db2"
$ pg_restore --dbname "db1" "my_backup"
Por fim, recrie os nomes de esquema apropriados:
alter schema public rename to my_schema;
alter schema original_public rename to public;
Outra opção é usar dblink. Permite acessar dados de diferentes bancos de dados.