From my reading of the docs at …
… I would expect this to work
import psycopg2
import sqlalchemy as sa
print(sa.__version__) # 1.4.17
print(psycopg2.__version__) # 2.8.6 (dt dec pq3 ext lo64)
connection_uri = "postgresql+psycopg2://scott:tiger@localhost/test?isolation_level=AUTOCOMMIT"
engine = sa.create_engine(
connection_uri,
# future=True,
)
with engine.begin() as conn:
conn.exec_driver_sql("DROP TABLE IF EXISTS x")
However, I get
Traceback (most recent call last):
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3212, in _wrap_pool_connect
return fn()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 301, in connect
return _ConnectionFairy._checkout(self)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 761, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 419, in checkout
rec = pool._do_get()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
self._dec_overflow()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 142, in _do_get
return self._create_connection()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 247, in _create_connection
return _ConnectionRecord(self)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 362, in __init__
self.__connect()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 605, in __connect
pool.logger.debug("Error on connect(): %s", e)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 599, in __connect
connection = pool._invoke_creator(self)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/create.py", line 578, in connect
return dialect.connect(*cargs, **cparams)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 584, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/psycopg2/__init__.py", line 126, in connect
dsn = _ext.make_dsn(dsn, **kwargs)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/psycopg2/extensions.py", line 175, in make_dsn
parse_dsn(dsn)
psycopg2.ProgrammingError: invalid dsn: invalid connection option "isolation_level"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/gord/git/alembic-gerrit/gord_test/gord_test.py", line 15, in <module>
with engine.begin() as conn:
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2994, in begin
conn = self.connect(close_with_result=close_with_result)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3166, in connect
return self._connection_cls(self, close_with_result=close_with_result)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 96, in __init__
else engine.raw_connection()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3245, in raw_connection
return self._wrap_pool_connect(self.pool.connect, _connection)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3215, in _wrap_pool_connect
Connection._handle_dbapi_exception_noconnection(
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2068, in _handle_dbapi_exception_noconnection
util.raise_(
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3212, in _wrap_pool_connect
return fn()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 301, in connect
return _ConnectionFairy._checkout(self)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 761, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 419, in checkout
rec = pool._do_get()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
self._dec_overflow()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 142, in _do_get
return self._create_connection()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 247, in _create_connection
return _ConnectionRecord(self)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 362, in __init__
self.__connect()
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 605, in __connect
pool.logger.debug("Error on connect(): %s", e)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 599, in __connect
connection = pool._invoke_creator(self)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/create.py", line 578, in connect
return dialect.connect(*cargs, **cparams)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 584, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/psycopg2/__init__.py", line 126, in connect
dsn = _ext.make_dsn(dsn, **kwargs)
File "/home/gord/git/alembic-gerrit/venv/lib/python3.8/site-packages/psycopg2/extensions.py", line 175, in make_dsn
parse_dsn(dsn)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) invalid dsn: invalid connection option "isolation_level"
Have we broken something?