中間ファイルを作成する必要はありません。あなたができる
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname
または
pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname
psql
を使用する またはpg_dump
リモートホストに接続します。
データベースが大きい場合や接続が遅い場合は、ファイルのダンプと圧縮されたファイルの転送が高速になる可能性があります。
Kornelが言ったように、中間ファイルにダンプする必要はないので、圧縮して作業したい場合は、圧縮トンネルを使用できます
pg_dump -C dbname | bzip2 | ssh [email protected] "bunzip2 | psql dbname"
または
pg_dump -C dbname | ssh -C [email protected] "psql dbname"
ただし、このソリューションでは、両端でセッションを取得する必要もあります。
注: pg_dump
バックアップとpsql
用です 復元用です。したがって、この回答の最初のコマンドはローカルからリモートにコピーすることであり、2番目のコマンドはリモートからローカルにコピーすることです 。詳細->https://www.postgresql.org/docs/9.6/app-pgdump.html