diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-03-02 18:48:08 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-03-03 10:54:07 -0500 |
commit | 9d4d15e931b76a4c1456c1023e3e61e1663cfe9c (patch) | |
tree | 67537b44aee71ce6ad91710d37476bd15e03a50d | |
parent | 90039d47473afc6de86c4bed521fcd1196b43d18 (diff) | |
download | sqlalchemy-9d4d15e931b76a4c1456c1023e3e61e1663cfe9c.tar.gz |
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)
-rw-r--r-- | doc/build/changelog/unreleased_13/5983.rst | 11 | ||||
-rw-r--r-- | lib/sqlalchemy/orm/relationships.py | 7 | ||||
-rw-r--r-- | test/orm/test_unitofwork.py | 4 |
3 files changed, 13 insertions, 9 deletions
diff --git a/doc/build/changelog/unreleased_13/5983.rst b/doc/build/changelog/unreleased_13/5983.rst new file mode 100644 index 000000000..a5724ebe2 --- /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 f32d44628..fa92641e1 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 4e4a7777c..74d89dde6 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): |