Você não precisa criar um arquivo intermediário. Você pode fazer
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname
ou
pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname
usando
psql
ou pg_dump
para se conectar a um host remoto. Com um banco de dados grande ou uma conexão lenta, despejar um arquivo e transferir o arquivo compactado pode ser mais rápido.
Como Kornel disse não há necessidade de despejar em um arquivo intermediário, se você quiser trabalhar compactado, pode usar um túnel compactado
pg_dump -C dbname | bzip2 | ssh [email protected] "bunzip2 | psql dbname"
ou
pg_dump -C dbname | ssh -C [email protected] "psql dbname"
mas esta solução também requer uma sessão em ambas as extremidades.
Observação:
pg_dump
é para fazer backup e psql
é para restaurar. Portanto, o primeiro comando nesta resposta é copiar de local para remoto e o segundo é de remoto para local . Mais -> https://www.postgresql.org/docs/9.6/app-pgdump.html