]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Remove passive_deletes warning for many-to-one
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 2 Mar 2021 23:48:08 +0000 (18:48 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 3 Mar 2021 15:54:07 +0000 (10:54 -0500)
Removed very old warning that states that passive_deletes is not intended
for many-to-one relationships. While it is likely that in many cases
placing this parameter on a many-to-one relationship is not what was
intended, there are use cases where delete cascade may want to be
disallowed following from such a relationship.

Change-Id: I07adb726633f73f26296add4ec70376d5dcf8817
References: #5983
(cherry picked from commit a63b23392fc31766e32b8650127d9006ee189a0f)

doc/build/changelog/unreleased_13/5983.rst [new file with mode: 0644]
lib/sqlalchemy/orm/relationships.py
test/orm/test_unitofwork.py

diff --git a/doc/build/changelog/unreleased_13/5983.rst b/doc/build/changelog/unreleased_13/5983.rst
new file mode 100644 (file)
index 0000000..a5724eb
--- /dev/null
@@ -0,0 +1,11 @@
+.. change::
+    :tags: bug, orm
+    :tickets: 5983
+
+    Removed very old warning that states that passive_deletes is not intended
+    for many-to-one relationships. While it is likely that in many cases
+    placing this parameter on a many-to-one relationship is not what was
+    intended, there are use cases where delete cascade may want to be
+    disallowed following from such a relationship.
+
+
index f32d44628d4324964a24395c581e9bfed7e9fb52..fa92641e1d16c2985d1c24cffad924ac8997ae0a 100644 (file)
@@ -2269,13 +2269,6 @@ class RelationshipProperty(StrategizedProperty):
                 code="bbf0",
             )
 
-        if self.direction is MANYTOONE and self.passive_deletes:
-            util.warn(
-                "On %s, 'passive_deletes' is normally configured "
-                "on one-to-many, one-to-one, many-to-many "
-                "relationships only." % self
-            )
-
         if self.passive_deletes == "all" and (
             "delete" in cascade or "delete-orphan" in cascade
         ):
index 4e4a7777ce95c6017656e301056744708500cbec..74d89dde6de523fa5f7b2c1dece9320ed2180747 100644 (file)
@@ -771,7 +771,7 @@ class PassiveDeletesTest(fixtures.MappedTest):
         eq_(select([func.count("*")]).select_from(mytable).scalar(), 1)
         eq_(select([func.count("*")]).select_from(myothertable).scalar(), 0)
 
-    def test_aaa_m2o_emits_warning(self):
+    def test_aaa_m2o_no_longer_emits_warning(self):
         myothertable, MyClass, MyOtherClass, mytable = (
             self.tables.myothertable,
             self.classes.MyClass,
@@ -789,7 +789,7 @@ class PassiveDeletesTest(fixtures.MappedTest):
             },
         )
         mapper(MyClass, mytable)
-        assert_raises(sa.exc.SAWarning, sa.orm.configure_mappers)
+        sa.orm.configure_mappers()
 
 
 class BatchDeleteIgnoresRowcountTest(fixtures.DeclarativeMappedTest):