Estoy tratando de automatizar volcados de datos regulares desde mi base de datos de postgres usando django/python. Estoy usando apio para automatizarlo como una tarea, ya que quiero que los volcados de datos se ejecuten regularmente, todos los días o cada dos días. Actualmente estoy usando sh, aquí está mi código:
from sh import pg_dump @periodic_task( run_every=(crontab(minute='*/2')), #set to 2 min interval for testing name="portal_backup", ignore_result=True) def portal_backup(): filename = "portal_backup.sql" with gzip.open(filename) as f: pg_dump('-U', 'postgres', '-W', '-F', 'p', 'Portal', _out=f) print("backup done")Toda la información de mi base de datos está en mi archivo .env, sin embargo, cuando ejecuto mi código, aparece este error:
**sh.ErrorReturnCode_1: RAN: /usr/bin/pg_dump -U postgres -W -F p Portal STDOUT: STDERR: Password: pg_dump: error: connection to database "Portal" failed: FATAL: Peer authentication failed for user "postgres"**No sé por qué falló la autenticación. Si alguien tiene mejores ideas sobre cómo puedo automatizar este proceso a través de django/python y apio, agradecería cualquier información.