No es necesario crear un archivo intermedio. Puedes hacer
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname
o
pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname
usando psql
o pg_dump
para conectarse a un host remoto.
Con una gran base de datos o una conexión lenta, volcar un archivo y transferirlo comprimido puede ser más rápido.
Como dijo Kornel, no es necesario volcar a un archivo intermedio, si desea trabajar comprimido, puede usar un túnel comprimido
pg_dump -C dbname | bzip2 | ssh [email protected] "bunzip2 | psql dbname"
o
pg_dump -C dbname | ssh -C [email protected] "psql dbname"
pero esta solución también requiere obtener una sesión en ambos extremos.
pg_dump
es para realizar copias de seguridad y psql
es para restaurar. Entonces, el primer comando en esta respuesta es copiar de local a remoto y el segundo es de remoto a local . Más -> https://www.postgresql.org/docs/9.6/app-pgdump.html