Para una línea, como migrar una base de datos que puede usar --dbname
seguida de una cadena de conexión (incluida la contraseña) como se indica en el manual pg_dump
En esencia.
pg_dump --dbname=postgresql://username:password@127.0.0.1:5432/mydatabase
Nota: Asegúrese de usar la opción en --dbname
lugar de la más corta -d
y use un prefijo URI válido, postgresql://
o postgres://
.
La forma general de URI es:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
La mejor práctica en su caso (tarea repetitiva en cron) no debe hacerse debido a problemas de seguridad. Si no fuera por el .pgpass
archivo, guardaría la cadena de conexión como una variable de entorno.
export MYDB=postgresql://username:password@127.0.0.1:5432/mydatabase
entonces ten en tu crontab
0 3 * * * pg_dump --dbname=$MYDB | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz
Josue Alexander Ibarra
fuente