Не е необходимо да създавате междинен файл. Можете да направите
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
за да се свържете с отдалечен хост.
При голяма база данни или бавна връзка изхвърлянето на файл и прехвърлянето на компресиран файл може да бъде по-бързо.
Както каза Корнел, няма нужда да изхвърляте в междинен файл, ако искате да работите компресиран, можете да използвате компресиран тунел
pg_dump -C dbname | bzip2 | ssh [email protected] "bunzip2 | psql dbname"
или
pg_dump -C dbname | ssh -C [email protected] "psql dbname"
но това решение също изисква да получите сесия в двата края.
Забележка: pg_dump
е за архивиране и psql
е за възстановяване. И така, първата команда в този отговор е да копирате от локално към дистанционно, а втората е от дистанционно към локално . Още -> https://www.postgresql.org/docs/9.6/app-pgdump.html