Есть ли такая возможность? удобный метод, такой как engine.interactive(), который просто отправляет вас в CLI в текущей базе данных, аналогично Breakpoint(), который отправляет вас в PDB? Я подумал об одном:
Код: Выделить всё
subprocess.run(['psql', engine.url])
Код: Выделить всё
$ psql postgresql+psycopg2://postgres:dev@localhost:5432/
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "root" does not exist
$ psql postgresql://postgres:dev@localhost:5432/
psql (16.4 (Debian 16.4-1.pgdg120+1))
Type "help" for help.
postgres=#
Код: Выделить всё
def enter_cli(engine):
url = engine.url.set(drivername=url.drivername.split("+")[0])
connection_string = url.render_as_string(hide_password=False)
subprocess.run(["psql", connection_string])
Подробнее здесь: https://stackoverflow.com/questions/790 ... -psychopg2