リモート越しに PostgreSQL のデータを移行する

移行先で .pgpass を設定してパスワードなしで psql を実行できるようにしておく。SSH もパスワードの入力なしで接続できるようにしておく。

$ cat > ~/.pgpass
localhost:*:*:USER:PASSWD
^D
$ chmod 600 ~/.pgpass
$ pg_dump -h localhost -U USER -c DBNAME | ssh -i /PATH/TO/PRIVATE_KEY_FILE -p PORT USER@HOST psql -h localhost -U USER -f /dev/stdin DBNAME