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 ?
- 682 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
így fut. Köszi
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
cidb["username"] == "admin"
- A hozzászóláshoz be kell jelentkezni
Az még mindig nem admin... hát ha közben átszerkesztetted... :D
- A hozzászóláshoz be kell jelentkezni