загрузите и передайте sql по каналу к psql

Как я могу сделать это за один шаг?

Команда резервного копирования загрузки:

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

Команда резервного копирования восстановления:

sudo -u postgres psql <PIPE-THE-OUTPUT-OF-PREVIOUS-COMMAND>
1
задан 8 November 2017 в 18:20

3 ответа

Если обе команды работают, необходимо попробовать

curl -s http://s3.aws.com/backup.sql | sudo -u postgres psql
3
ответ дан 3 December 2019 в 06:52

Еще один путь:

sudo -u postgres psql --file <(curl -s http://s3.aws.com/backup.sql)
0
ответ дан 3 December 2019 в 06:52

Я знаю, что это - старый вопрос, но я просто наткнулся на во время поиска (это была вершина результатов), и не похоже, что любой из ответов корректен согласно postgres руководство.

Руководство предлагает передать -f - как опция к psql и затем передача по каналу stdin что когда-либо Вы хотите. Заключение в кавычки руководства для 9,4:

Если имя файла - (дефис), то стандартный вход читается до признака EOF или метакоманды \q. Обратите внимание однако, что Readline не используется в этом случае (как, если-n был указан).

Используя эту опцию тонко отличается от записи psql <имя файла. В целом оба сделают то, что Вы ожидаете, но использующий-f активирует некоторые хорошие опции, такие как сообщения об ошибках с номерами строки.

1
ответ дан 3 December 2019 в 06:52

Другие вопросы по тегам:

Похожие вопросы: