Vous n'avez pas besoin de créer un fichier intermédiaire. Vous pouvez faire
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
en utilisant psql
ou pg_dump
pour se connecter à un hôte distant.
Avec une grande base de données ou une connexion lente, le vidage d'un fichier et le transfert du fichier compressé peuvent être plus rapides.
Comme Kornel l'a dit, il n'est pas nécessaire d'effectuer un dumping vers un fichier intermédiaire. Si vous voulez travailler en mode compressé, vous pouvez utiliser un tunnel compressé.
pg_dump -C dbname | bzip2 | ssh remoteuser@remotehost "bunzip2 | psql dbname"
ou
pg_dump -C dbname | ssh -C remoteuser@remotehost "psql dbname"
mais cette solution nécessite également d'obtenir une session aux deux extrémités.
Note : pg_dump
sert à sauvegarder et psql
est pour la restauration. Ainsi, le La première commande dans cette réponse est pour copier de local à distant et la seconde est de distant à local. . Plus -> https://www.postgresql.org/docs/9.6/app-pgdump.html