Как я могу сделать это за один шаг?
Команда резервного копирования загрузки:
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
Еще один путь:
sudo -u postgres psql --file <(curl -s http://s3.aws.com/backup.sql)
Я знаю, что это - старый вопрос, но я просто наткнулся на во время поиска (это была вершина результатов), и не похоже, что любой из ответов корректен согласно postgres
руководство.
Руководство предлагает передать -f -
как опция к psql
и затем передача по каналу stdin
что когда-либо Вы хотите. Заключение в кавычки руководства для 9,4:
Если имя файла - (дефис), то стандартный вход читается до признака EOF или метакоманды \q. Обратите внимание однако, что Readline не используется в этом случае (как, если-n был указан).
Используя эту опцию тонко отличается от записи psql <имя файла. В целом оба сделают то, что Вы ожидаете, но использующий-f активирует некоторые хорошие опции, такие как сообщения об ошибках с номерами строки.