From 134ee6eebf84f7cc5966f00303bdb3f00fec0cd0 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 23 Aug 2020 10:44:44 -0400 Subject: [PATCH] Check for URL.create() in the possibly upcoming I28a0a471d80792fa8c28f4fa573d6352966a4a79 we will want to use URL.create(); establish compat. Change-Id: I397aae93ffdd34205b57a27e75f3801fcf459db7 --- alembic/testing/assertions.py | 4 ++-- alembic/util/sqla_compat.py | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) 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) -- 2.47.2