From: Mike Bayer Date: Sun, 23 Aug 2020 14:44:44 +0000 (-0400) Subject: Check for URL.create() X-Git-Tag: rel_1_4_3~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=134ee6eebf84f7cc5966f00303bdb3f00fec0cd0;p=thirdparty%2Fsqlalchemy%2Falembic.git Check for URL.create() in the possibly upcoming I28a0a471d80792fa8c28f4fa573d6352966a4a79 we will want to use URL.create(); establish compat. Change-Id: I397aae93ffdd34205b57a27e75f3801fcf459db7 --- diff --git a/alembic/testing/assertions.py b/alembic/testing/assertions.py index e43b3d06..b09e09f3 100644 --- a/alembic/testing/assertions.py +++ b/alembic/testing/assertions.py @@ -13,6 +13,7 @@ from sqlalchemy.testing.assertions import is_true # noqa from sqlalchemy.testing.assertions import ne_ # noqa from sqlalchemy.util import decorator +from ..util import sqla_compat from ..util.compat import py3k @@ -65,9 +66,8 @@ def _get_dialect(name): if name is None or name == "default": return default.DefaultDialect() else: - from sqlalchemy.engine import url - d = url.URL(name).get_dialect()() + d = sqla_compat._create_url(name).get_dialect()() if name == "postgresql": d.implicit_returning = True diff --git a/alembic/util/sqla_compat.py b/alembic/util/sqla_compat.py index 94127f92..5fc5e05a 100644 --- a/alembic/util/sqla_compat.py +++ b/alembic/util/sqla_compat.py @@ -5,6 +5,7 @@ from sqlalchemy import inspect from sqlalchemy import schema from sqlalchemy import sql from sqlalchemy import types as sqltypes +from sqlalchemy.engine import url from sqlalchemy.ext.compiler import compiles from sqlalchemy.schema import CheckConstraint from sqlalchemy.schema import Column @@ -46,6 +47,13 @@ except ImportError: AUTOINCREMENT_DEFAULT = "auto" +def _create_url(*arg, **kw): + if hasattr(url.URL, "create"): + return url.URL.create(*arg, **kw) + else: + return url.URL(*arg, **kw) + + def _connectable_has_table(connectable, tablename, schemaname): if sqla_14: return inspect(connectable).has_table(tablename, schemaname)