diff options
author | Gord Thompson <gord@gordthompson.com> | 2021-11-08 11:03:54 -0700 |
---|---|---|
committer | Gord Thompson <gord@gordthompson.com> | 2021-11-09 06:12:39 -0700 |
commit | bd1be0b7e0ecd76bdf6d26fd11cc42e1a473b319 (patch) | |
tree | bcb527a334bb3da906b8c450f93f3dc3ed683a27 /lib/sqlalchemy/dialects | |
parent | cf404d840c15fe167518dd884b295dc99ee26178 (diff) | |
download | sqlalchemy-bd1be0b7e0ecd76bdf6d26fd11cc42e1a473b319.tar.gz |
De-emphasize notion of "default driver" (DBAPI)
Fixes: #6960
Even though a default driver still exists for
each dialect, remove most usages of `dialect://`
to encourage users to explicitly specify
`dialect+driver://`
Change-Id: I0ad42167582df509138fca64996bbb53e379b1af
Diffstat (limited to 'lib/sqlalchemy/dialects')
-rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 6 | ||||
-rw-r--r-- | lib/sqlalchemy/dialects/oracle/base.py | 4 | ||||
-rw-r--r-- | lib/sqlalchemy/dialects/oracle/cx_oracle.py | 4 | ||||
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/base.py | 2 | ||||
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/json.py | 2 |
5 files changed, 9 insertions, 9 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index 63a11fcc7..5382e00db 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -213,7 +213,7 @@ techniques are used. To set isolation level using :func:`_sa.create_engine`:: engine = create_engine( - "mysql://scott:tiger@localhost/test", + "mysql+mysqldb://scott:tiger@localhost/test", isolation_level="READ UNCOMMITTED" ) @@ -423,7 +423,7 @@ the ``first_connect`` and ``connect`` events:: from sqlalchemy import create_engine, event - eng = create_engine("mysql://scott:tiger@localhost/test", echo='debug') + eng = create_engine("mysql+mysqldb://scott:tiger@localhost/test", echo='debug') # `insert=True` will ensure this is the very first listener to run @event.listens_for(eng, "connect", insert=True) @@ -950,7 +950,7 @@ SQLAlchemy also emits NOT NULL for TIMESTAMP columns that do specify from sqlalchemy import create_engine - e = create_engine("mysql://scott:tiger@localhost/test", echo=True) + e = create_engine("mysql+mysqldb://scott:tiger@localhost/test", echo=True) m.create_all(e) output:: diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 9e62b931d..5a43205df 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -306,7 +306,7 @@ an INSERT in order to increment a sequence within an INSERT statement and get the value back at the same time. To disable this feature across the board, specify ``implicit_returning=False`` to :func:`_sa.create_engine`:: - engine = create_engine("oracle://scott:tiger@dsn", + engine = create_engine("oracle+cx_oracle://scott:tiger@dsn", implicit_returning=False) Implicit returning can also be disabled on a table-by-table basis as a table @@ -450,7 +450,7 @@ the ``exclude_tablespaces`` parameter:: # exclude SYSAUX and SOME_TABLESPACE, but not SYSTEM e = create_engine( - "oracle://scott:tiger@xe", + "oracle+cx_oracle://scott:tiger@xe", exclude_tablespaces=["SYSAUX", "SOME_TABLESPACE"]) .. versionadded:: 1.1 diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index 38e864898..590c9d47c 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -158,7 +158,7 @@ SQLAlchemy's pooling:: encoding="UTF-8", nencoding="UTF-8" ) - engine = create_engine("oracle://", creator=pool.acquire, poolclass=NullPool) + engine = create_engine("oracle+cx_oracle://", creator=pool.acquire, poolclass=NullPool) The above engine may then be used normally where cx_Oracle's pool handles connection pooling:: @@ -196,7 +196,7 @@ This can be achieved by wrapping ``pool.acquire()``:: def creator(): return pool.acquire(cclass="MYCLASS", purity=cx_Oracle.ATTR_PURITY_SELF) - engine = create_engine("oracle://", creator=creator, poolclass=NullPool) + engine = create_engine("oracle+cx_oracle://", creator=creator, poolclass=NullPool) The above engine may then be used normally where cx_Oracle handles session pooling and Oracle Database additionally uses DRCP:: diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 87afa0293..a00c26e87 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -346,7 +346,7 @@ were set to include ``test_schema``, and we invoked a table reflection process as follows:: >>> from sqlalchemy import Table, MetaData, create_engine, text - >>> engine = create_engine("postgresql://scott:tiger@localhost/test") + >>> engine = create_engine("postgresql+psycopg2://scott:tiger@localhost/test") >>> with engine.connect() as conn: ... conn.execute(text("SET search_path TO test_schema, public")) ... meta = MetaData() diff --git a/lib/sqlalchemy/dialects/postgresql/json.py b/lib/sqlalchemy/dialects/postgresql/json.py index 2acf177f5..ef046e3ae 100644 --- a/lib/sqlalchemy/dialects/postgresql/json.py +++ b/lib/sqlalchemy/dialects/postgresql/json.py @@ -159,7 +159,7 @@ class JSON(sqltypes.JSON): using psycopg2, the DBAPI only allows serializers at the per-cursor or per-connection level. E.g.:: - engine = create_engine("postgresql://scott:tiger@localhost/test", + engine = create_engine("postgresql+psycopg2://scott:tiger@localhost/test", json_serializer=my_serialize_fn, json_deserializer=my_deserialize_fn ) |