Автоматизация PG_DUMP базы данных PSQL на Heroku

Я пытаюсь pg_dump определенные схемы из моей базы данных PSQL, размещенной на Heroku, в локальный файл.

Heroku предоставляет мне DATABASE_URL в форме

# postgres://username:password@host:port/database
postgres://abcde:[email protected]:5762/riza3dj029012

Основываясь на вышеизложенном, я попытался сбросить несколько схем -

> pg_dump --username=abcde --host=ec2-21-82-72-112.compute-1.amazonaws.com --port=5762 --dbname=riza3dj029012 --create --schema=my_schema --password  > ~/pg_dump.dmp
> password: (enter password)

Есть ли способ указать пароль в качестве флага, чтобы мне не приходилось вводить его вручную? Я хочу автоматизировать это в скрипте.

Я знаю, что --no-password существует, но не уверен, для чего это нужно, потому что он просто предотвращает запрос пароля, а затем аутентификация (очевидно) терпит неудачу.

Спасибо!


person user2490003    schedule 24.10.2016    source источник
comment
Вы пытались создать файл .pgpass а-ля postgresql.org/docs/ 9.5 / static / libpq-pgpass.html или stackoverflow.com/questions/2893954/?   -  person eabates    schedule 26.10.2016
comment
Это помогло мне, спасибо. Хотя это работает, это не идеально, потому что мне нужно создать файл с моими производственными учетными данными на моем локальном компьютере. Если сценарий когда-либо терпит неудачу, файл pgpass не очищается, моя локальная машина теперь хранит учетные данные производственной базы данных - действительно плохая практика безопасности, особенно в компаниях, которые проходят строгий аудит безопасности. Я бы хотел, чтобы PSQL вместо этого просто использовал параметр командной строки пароля.   -  person user2490003    schedule 30.10.2016


Ответы (1)


Как упоминал @eabates в комментариях, вы можете создать для этой цели файл .pgpass. Дополнительную информацию можно найти в официальной документации Postgres: https://www.postgresql.org/docs/9.5/static/libpq-pgpass.html

Просто создайте файл с именем .pgpass в домашнем каталоге пользователя с необходимым количеством строк в следующем формате:

hostname:port:database:username:password
person Steve Glick    schedule 28.11.2016