]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Allow reflecting UUID in MariaDB 10029/head
authorkrzysdz <krzysdz@users.noreply.github.com>
Wed, 28 Jun 2023 11:54:52 +0000 (13:54 +0200)
committerkrzysdz <krzysdz@users.noreply.github.com>
Thu, 29 Jun 2023 21:55:41 +0000 (23:55 +0200)
Fixes: #10028
doc/build/changelog/unreleased_20/10028.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/mysql/base.py
test/dialect/mysql/test_reflection.py

diff --git a/doc/build/changelog/unreleased_20/10028.rst b/doc/build/changelog/unreleased_20/10028.rst
new file mode 100644 (file)
index 0000000..6c075ab
--- /dev/null
@@ -0,0 +1,7 @@
+.. change::
+       :tags: usecase, mariadb, reflection
+       :tickets: 10028
+
+       Allowed reflecting :class:`_types.UUID` columns from MariaDB. This allows
+       Alembic to properly detect the type of such columns in existing MariaDB
+       databases.
index 18e64f1b484655120268a4fddaeaeb4db733bc34..9bfd2be25a13f128d134cd52cc7e4ee252624e12 100644 (file)
@@ -1067,6 +1067,7 @@ from ...types import BINARY
 from ...types import BLOB
 from ...types import BOOLEAN
 from ...types import DATE
+from ...types import UUID
 from ...types import VARBINARY
 from ...util import topological
 
@@ -1155,6 +1156,7 @@ ischema_names = {
     "tinyblob": TINYBLOB,
     "tinyint": TINYINT,
     "tinytext": TINYTEXT,
+    "uuid": UUID,
     "varbinary": VARBINARY,
     "varchar": VARCHAR,
     "year": YEAR,
index e5e35c9504a11389b69fee9f79ca9910c42935d1..f3d1f34599b00c3a5ed68afaf41af824787f04f7 100644 (file)
@@ -242,6 +242,13 @@ class TypeReflectionTest(fixtures.TestBase):
 
         self._run_test(metadata, connection, specs, ["enums"])
 
+    @testing.only_on("mariadb>=10.7")
+    def test_uuid(self, metadata, connection):
+        specs = [
+            (mysql.UUID(), mysql.UUID()),
+        ]
+        self._run_test(metadata, connection, specs, [])
+
 
 class ReflectionTest(fixtures.TestBase, AssertsCompiledSQL):
     __only_on__ = "mysql", "mariadb"