[megoldva]pg_dump pythonbol

Sziasztok,

Szeretnék egy AWS-ben található PostgreSQL adatbázisból dumpolni. A dumpot a későbbiekben anonimizálni és feltölteni egy másik helyre teszt jelleggel.

Mindezt pythonban szeretném megoldani és már a dump készítésénél elakadtam :-)

1. Mivel a db nem érhető el közvetlenül, mappeltem a portot amin elérhető a helyi gépre "sshtunnel" lib használatával.
2. A localhost:port:név:jelszó:db beállítást elraktam a .pgpass fájlba a ~ folderbe hogy ne kelljen a jelszóval vesződni.

cli-ből az alábbi parancs simán működik
$pg_dump -U admin -p 3838 -h localhost database_name > backup_file.sql

amikor viszont pythonból próbálom az alábbi paranccsal

subprocess.call(["pg_dump", "-U", cidb["username"], "-p", cidb["port"],
"-h", "localhost", "database_name", ">",
"backup_file.sql"],
shell=True )

Az alábbi hibát dobja

pg_dump: [archiver (db)] connection to database "testuser" failed: FATAL: role "testuser" does not exist

A python script és a command line ugyanazon userként fut.

Az alábbi linket megtaláltam
https://stackoverflow.com/questions/11919391/postgresql-error-fatal-rol…

De az user hozzáadás a db-hez nem megoldás és nem értem akkor cli-ből miért működik

Van vmi ötlet mit kellene lépnem ?

Hozzászólások

os.system("jól_működő_cli_parancsod")
os.popen("jól_működő_cli_parancsod", "r") ---> cli parancs stdout-ját így átveheted Pythonból.

Valamit nem értek: a cli-nél admin usert használsz, a hiba meg valami testuser-t emleget.
Mintha pythonból testuser néven próbálnád, nem adminként.