Для однострочной, например, миграции базы данных, вы можете использовать --dbname
, за которым следует строка подключения (включая пароль), как указано в руководстве pg_dump
По существу.
pg_dump --dbname=postgresql://username:password@127.0.0.1:5432/mydatabase
Примечание: Убедитесь, что вы используете опцию --dbname
вместо более короткого -d
и используете действительный префикс URI, postgresql://
или postgres://
.
Общая форма URI:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
Лучшая практика в вашем случае (повторяющаяся задача в cron) не должна выполняться из-за проблем безопасности. Если бы не файл .pgpass
, я бы сохранил строку подключения как переменную среды.
export MYDB=postgresql://username:password@127.0.0.1:5432/mydatabase
тогда есть в вашем crontab
0 3 * * * pg_dump --dbname=$MYDB | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz