Sé libre de divulgar nuestra web y códigos con tus amigos, apóyanos para ampliar esta comunidad.
Solución:
Crear un .pgpass
archivo en el directorio de inicio de la cuenta que pg_dump
se ejecutará como.
El formato es:
hostname:port:database:username:password
Luego, establezca el modo del archivo en 0600
. De lo contrario, será ignorado.
chmod 600 ~/.pgpass
Consulte la documentación de Postgresql libpq-pgpass para obtener más detalles.
O puede configurar crontab para ejecutar un script. Dentro de ese script, puede establecer una variable de entorno como esta:
export PGPASSWORD="$put_here_the_password"
De esta manera, si tiene varios comandos que requieren contraseña, puede ponerlos todos en el script. Si la contraseña cambia, solo tiene que cambiarla en un lugar (el script).
Y estoy de acuerdo con Joshua, usando pg_dump -Fc
genera el formato de exportación más flexible y ya está comprimido. Para obtener más información, consulte: documentación de pg_dump
P.ej
# dump the database in custom-format archive
pg_dump -Fc mydb > db.dump
# restore the database
pg_restore -d newdb db.dump
Si quieres hacerlo en un solo comando:
PGPASSWORD="mypass" pg_dump mydb > mydb.dump
Tienes la posibilidad dar recomendación a este ensayo si si solucionó tu problema.