web-dev-qa-db-ja.com

sqlをダウンロードしてpsqlにパイプする

これを1ステップで行うにはどうすればよいですか?

バックアップコマンドのダウンロード:

curl http://s3.aws.com/backup.sql

バックアップコマンドの復元:

Sudo -u postgres psql <PIPE-THE-OUTPUT-OF-PREVIOUS-COMMAND>

両方のコマンドが機能している場合は、試してください

curl -s http://s3.aws.com/backup.sql | Sudo -u postgres psql
3
ob2

私はこれが古い質問であることを知っていますが、検索中につまずいただけで(結果の最上位でした)、postgresマニュアルによると答えが正しいようには見えません。

マニュアルでは、-f -psqlのオプションとして渡し、それからstdinに必要なものを追加することを提案しています。 9.4のマニュアルを引用:

Filenameが-(ハイフン)の場合、EOF指示または\ qメタコマンドまで標準入力が読み取られます。ただし、この場合Readlineは使用されないことに注意してください(-nが指定された場合と同様)。

このオプションの使用は、psql <filenameの記述とは微妙に異なります。一般に、どちらも期待どおりに動作しますが、-fを使用すると、行番号付きのエラーメッセージなどのニース機能が有効になります。

1
kazza

さらに別の方法:

Sudo -u postgres psql --file <(curl -s http://s3.aws.com/backup.sql)
0
pLumo