From: Mike Bayer Date: Fri, 14 Aug 2020 20:19:58 +0000 (-0400) Subject: update mariadb checks X-Git-Tag: rel_1_4_3~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=599f27dcce62abac1f90a44f9c9a85e7dca885de;p=thirdparty%2Fsqlalchemy%2Falembic.git update mariadb checks We want to revise mariadb version info stuff in SQLAlchemy master so use _is_mariadb and _mariadb_normalized_version_info both of which are as far back as rel_1_1 at least Change-Id: I7040a8a65a81762c11b4033cfed6b015cc97999c --- diff --git a/alembic/testing/assertions.py b/alembic/testing/assertions.py index a78e5e8e..e43b3d06 100644 --- a/alembic/testing/assertions.py +++ b/alembic/testing/assertions.py @@ -65,14 +65,10 @@ def _get_dialect(name): if name is None or name == "default": return default.DefaultDialect() else: - try: - dialect_mod = _dialect_mods[name] - except KeyError: - dialect_mod = getattr( - __import__("sqlalchemy.dialects.%s" % name).dialects, name - ) - _dialect_mods[name] = dialect_mod - d = dialect_mod.dialect() + from sqlalchemy.engine import url + + d = url.URL(name).get_dialect()() + if name == "postgresql": d.implicit_returning = True elif name == "mssql": diff --git a/alembic/testing/fixtures.py b/alembic/testing/fixtures.py index 29514556..6acfa9bf 100644 --- a/alembic/testing/fixtures.py +++ b/alembic/testing/fixtures.py @@ -24,6 +24,7 @@ from ..util.compat import configparser from ..util.compat import string_types from ..util.compat import text_type from ..util.sqla_compat import create_mock_engine +from ..util.sqla_compat import sqla_14 testing_config = configparser.ConfigParser() testing_config.read(["test.cfg"]) @@ -144,9 +145,9 @@ def op_fixture( opts["as_sql"] = as_sql if literal_binds: opts["literal_binds"] = literal_binds - if dialect == "mariadb": + if not sqla_14 and dialect == "mariadb": ctx_dialect = _get_dialect("mysql") - ctx_dialect.server_version_info = (10, 0, 0, "MariaDB") + ctx_dialect.server_version_info = (10, 4, 0, "MariaDB") else: ctx_dialect = _get_dialect(dialect) diff --git a/alembic/util/sqla_compat.py b/alembic/util/sqla_compat.py index d3030332..94127f92 100644 --- a/alembic/util/sqla_compat.py +++ b/alembic/util/sqla_compat.py @@ -281,17 +281,14 @@ def _comment_attribute(obj): def _is_mariadb(mysql_dialect): - return ( - mysql_dialect.server_version_info - and "MariaDB" in mysql_dialect.server_version_info - ) + if sqla_14: + return mysql_dialect.is_mariadb + else: + return mysql_dialect.server_version_info and mysql_dialect._is_mariadb def _mariadb_normalized_version_info(mysql_dialect): - if len(mysql_dialect.server_version_info) > 5: - return mysql_dialect.server_version_info[3:] - else: - return mysql_dialect.server_version_info + return mysql_dialect._mariadb_normalized_version_info if sqla_14: