]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
continue adding mariadb placeholder impl
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 15 Aug 2020 18:07:44 +0000 (14:07 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 15 Aug 2020 18:09:16 +0000 (14:09 -0400)
the change in 14b6b24c3e3950a6255333b3a01f47a819040ea0 was nearly
pointless by itself as I forgot to add "mariadb" to compiles
rules and requirements.

Change-Id: I6e17f65842bda0aaf6e67437d12078318311eb60

alembic/ddl/mysql.py
tests/requirements.py

index 32f04d61e04fbbda8a5fe9eb1dd60a8d3f0e6b87..96383fb2cc733c8a790ffdb1d12bb0d8e9bc3907 100644 (file)
@@ -288,17 +288,17 @@ class MySQLModifyColumn(MySQLChangeColumn):
     pass
 
 
-@compiles(ColumnNullable, "mysql")
-@compiles(ColumnName, "mysql")
-@compiles(ColumnDefault, "mysql")
-@compiles(ColumnType, "mysql")
+@compiles(ColumnNullable, "mysql", "mariadb")
+@compiles(ColumnName, "mysql", "mariadb")
+@compiles(ColumnDefault, "mysql", "mariadb")
+@compiles(ColumnType, "mysql", "mariadb")
 def _mysql_doesnt_support_individual(element, compiler, **kw):
     raise NotImplementedError(
         "Individual alter column constructs not supported by MySQL"
     )
 
 
-@compiles(MySQLAlterDefault, "mysql")
+@compiles(MySQLAlterDefault, "mysql", "mariadb")
 def _mysql_alter_default(element, compiler, **kw):
     return "%s ALTER COLUMN %s %s" % (
         alter_table(compiler, element.table_name, element.schema),
@@ -309,7 +309,7 @@ def _mysql_alter_default(element, compiler, **kw):
     )
 
 
-@compiles(MySQLModifyColumn, "mysql")
+@compiles(MySQLModifyColumn, "mysql", "mariadb")
 def _mysql_modify_column(element, compiler, **kw):
     return "%s MODIFY %s %s" % (
         alter_table(compiler, element.table_name, element.schema),
@@ -325,7 +325,7 @@ def _mysql_modify_column(element, compiler, **kw):
     )
 
 
-@compiles(MySQLChangeColumn, "mysql")
+@compiles(MySQLChangeColumn, "mysql", "mariadb")
 def _mysql_change_column(element, compiler, **kw):
     return "%s CHANGE %s %s %s" % (
         alter_table(compiler, element.table_name, element.schema),
@@ -368,7 +368,7 @@ def _mysql_colspec(
     return spec
 
 
-@compiles(schema.DropConstraint, "mysql")
+@compiles(schema.DropConstraint, "mysql", "mariadb")
 def _mysql_drop_constraint(element, compiler, **kw):
     """Redefine SQLAlchemy's drop constraint to
     raise errors for invalid constraint type."""
index d6794a54514852d0c3b8f8b0830a31494cfe7515..4599013856bbf9b144fc2d9c0f6f52a6e35bcf62 100644 (file)
@@ -39,7 +39,7 @@ class DefaultRequirements(SuiteRequirements):
 
     @property
     def check_constraints_w_enforcement(self):
-        return exclusions.fails_on("mysql")
+        return exclusions.fails_on(["mysql", "mariadb"])
 
     @property
     def unnamed_constraints(self):
@@ -59,7 +59,7 @@ class DefaultRequirements(SuiteRequirements):
 
     @property
     def reflects_fk_options(self):
-        return exclusions.only_on(["postgresql", "mysql", "sqlite"])
+        return exclusions.only_on(["postgresql", "mysql", "mariadb", "sqlite"])
 
     @property
     def fk_initially(self):
@@ -82,7 +82,7 @@ class DefaultRequirements(SuiteRequirements):
 
     @property
     def reflects_unique_constraints_unambiguously(self):
-        return exclusions.fails_on("mysql", "oracle")
+        return exclusions.fails_on(["mysql", "mariadb", "oracle"])
 
     @property
     def reflects_pk_names(self):
@@ -104,7 +104,7 @@ class DefaultRequirements(SuiteRequirements):
 
     @property
     def mysql(self):
-        return exclusions.only_on(["mysql"])
+        return exclusions.only_on(["mysql", "mariadb"])
 
     @property
     def oracle(self):
@@ -163,14 +163,14 @@ class DefaultRequirements(SuiteRequirements):
     def autocommit_isolation(self):
         """target database should support 'AUTOCOMMIT' isolation level"""
 
-        return exclusions.only_on("postgresql", "mysql")
+        return exclusions.only_on(["postgresql", "mysql", "mariadb"])
 
     @property
     def computed_columns(self):
         # TODO: in theory if these could come from SQLAlchemy dialects
         # that would be helpful
         return self.computed_columns_api + exclusions.only_on(
-            ["postgresql >= 12", "oracle", "mssql", "mysql >= 5.7"]
+            ["postgresql >= 12", "oracle", "mssql", "mysql >= 5.7", "mariadb"]
         )
 
     @property
@@ -242,7 +242,7 @@ class DefaultRequirements(SuiteRequirements):
 
     def _mariadb_102(self, config):
         return (
-            exclusions.against(config, "mysql")
+            exclusions.against(config, ["mysql", "mariadb"])
             and sqla_compat._is_mariadb(config.db.dialect)
             and sqla_compat._mariadb_normalized_version_info(config.db.dialect)
             > (10, 2)
@@ -252,7 +252,7 @@ class DefaultRequirements(SuiteRequirements):
         # MySQL has check constraints that enforce an reflect, however
         # they prevent a column's name from being changed due to a bug in
         # MariaDB 10.2 as well as MySQL 8.0.16
-        if exclusions.against(config, "mysql"):
+        if exclusions.against(config, ["mysql", "mariadb"]):
             if sqla_compat._is_mariadb(config.db.dialect):
                 mnvi = sqla_compat._mariadb_normalized_version_info
                 norm_version_info = mnvi(config.db.dialect)
@@ -271,7 +271,7 @@ class DefaultRequirements(SuiteRequirements):
     def _mysql_and_check_constraints_exist(self, config):
         # 1. we have mysql / mariadb and
         # 2. it enforces check constraints
-        if exclusions.against(config, "mysql"):
+        if exclusions.against(config, ["mysql", "mariadb"]):
             if sqla_compat._is_mariadb(config.db.dialect):
                 mnvi = sqla_compat._mariadb_normalized_version_info
                 norm_version_info = mnvi(config.db.dialect)
@@ -286,7 +286,7 @@ class DefaultRequirements(SuiteRequirements):
         # 1. we dont have mysql / mariadb or
         # 2. we have mysql / mariadb that enforces check constraints
         return not exclusions.against(
-            config, "mysql"
+            config, ["mysql", "mariadb"]
         ) or self._mysql_and_check_constraints_exist(config)
 
     def _mysql_check_constraints_dont_exist(self, config):
@@ -295,7 +295,7 @@ class DefaultRequirements(SuiteRequirements):
         return not self._mysql_check_constraints_exist(config)
 
     def _mysql_not_mariadb_102(self, config):
-        return exclusions.against(config, "mysql") and (
+        return exclusions.against(config, ["mysql", "mariadb"]) and (
             not sqla_compat._is_mariadb(config.db.dialect)
             or sqla_compat._mariadb_normalized_version_info(config.db.dialect)
             < (10, 2)