From 5cf8e14d58c89fdb94c60bf5e94d8b13d296da25 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 26 Jun 2019 11:45:50 -0400 Subject: Reflect "NO ACTION" as None; support "RESTRICT" The "NO ACTION" keyword for foreign key "ON UPDATE" is now considered to be the default cascade for a foreign key on all supporting backends (SQlite, MySQL, PostgreSQL) and when detected is not included in the reflection dictionary; this is already the behavior for PostgreSQL and MySQL for all previous SQLAlchemy versions in any case. The "RESTRICT" keyword is positively stored when detected; PostgreSQL does report on this keyword, and MySQL as of version 8.0 does as well. On earlier MySQL versions, it is not reported by the database. Fixes: #4741 Change-Id: I6becf1f2450605c1991158bb8a04d954dcc7396c --- lib/sqlalchemy/testing/requirements.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib/sqlalchemy/testing/requirements.py') diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py index 3a2161740..04537905b 100644 --- a/lib/sqlalchemy/testing/requirements.py +++ b/lib/sqlalchemy/testing/requirements.py @@ -426,10 +426,22 @@ class SuiteRequirements(Requirements): def foreign_key_constraint_option_reflection_ondelete(self): return exclusions.closed() + @property + def fk_constraint_option_reflection_ondelete_restrict(self): + return exclusions.closed() + + @property + def fk_constraint_option_reflection_ondelete_noaction(self): + return exclusions.closed() + @property def foreign_key_constraint_option_reflection_onupdate(self): return exclusions.closed() + @property + def fk_constraint_option_reflection_onupdate_restrict(self): + return exclusions.closed() + @property def temp_table_reflection(self): return exclusions.open() -- cgit v1.2.1