From: Mike Bayer Date: Tue, 2 Mar 2021 23:48:08 +0000 (-0500) Subject: Remove passive_deletes warning for many-to-one X-Git-Tag: rel_1_3_24~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d4d15e931b76a4c1456c1023e3e61e1663cfe9c;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Remove passive_deletes warning for many-to-one 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) --- diff --git a/doc/build/changelog/unreleased_13/5983.rst b/doc/build/changelog/unreleased_13/5983.rst new file mode 100644 index 0000000000..a5724ebe28 --- /dev/null +++ b/doc/build/changelog/unreleased_13/5983.rst @@ -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. + + diff --git a/lib/sqlalchemy/orm/relationships.py b/lib/sqlalchemy/orm/relationships.py index f32d44628d..fa92641e1d 100644 --- a/lib/sqlalchemy/orm/relationships.py +++ b/lib/sqlalchemy/orm/relationships.py @@ -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 ): diff --git a/test/orm/test_unitofwork.py b/test/orm/test_unitofwork.py index 4e4a7777ce..74d89dde6d 100644 --- a/test/orm/test_unitofwork.py +++ b/test/orm/test_unitofwork.py @@ -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):