From dbd9c239c60b8f4f2be66967825ee15c1f7941b0 Mon Sep 17 00:00:00 2001 From: roche-quentin Date: Wed, 8 May 2024 10:41:00 +0200 Subject: [PATCH] FIX #11285 CONSTRAINT FOREIGN KEY ON DELETE was missing SET DEFAULT in MySQL reflexion --- lib/sqlalchemy/dialects/mysql/reflection.py | 2 +- test/dialect/mysql/test_reflection.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/sqlalchemy/dialects/mysql/reflection.py b/lib/sqlalchemy/dialects/mysql/reflection.py index c764e8ccc7..d7622c5463 100644 --- a/lib/sqlalchemy/dialects/mysql/reflection.py +++ b/lib/sqlalchemy/dialects/mysql/reflection.py @@ -505,7 +505,7 @@ class MySQLTableDefinitionParser: # # unique constraints come back as KEYs kw = quotes.copy() - kw["on"] = "RESTRICT|CASCADE|SET NULL|NO ACTION" + kw["on"] = "RESTRICT|CASCADE|SET NULL|NO ACTION|SET DEFAULT" self._re_fk_constraint = _re_compile( r" " r"CONSTRAINT +" diff --git a/test/dialect/mysql/test_reflection.py b/test/dialect/mysql/test_reflection.py index 79e7198ef3..4fa472ce1a 100644 --- a/test/dialect/mysql/test_reflection.py +++ b/test/dialect/mysql/test_reflection.py @@ -1557,7 +1557,7 @@ class RawReflectionTest(fixtures.TestBase): " CONSTRAINT `addresses_user_id_fkey` " "FOREIGN KEY (`user_id`) " "REFERENCES `users` (`id`) " - "ON DELETE CASCADE ON UPDATE SET NULL" + "ON DELETE SET DEFAULT ON UPDATE SET NULL" ) eq_( m.groups(), @@ -1567,7 +1567,7 @@ class RawReflectionTest(fixtures.TestBase): "`users`", "`id`", None, - "CASCADE", + "SET DEFAULT", "SET NULL", ), ) -- 2.47.2