summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-03-02 18:48:08 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2021-03-03 10:54:07 -0500
commit9d4d15e931b76a4c1456c1023e3e61e1663cfe9c (patch)
tree67537b44aee71ce6ad91710d37476bd15e03a50d
parent90039d47473afc6de86c4bed521fcd1196b43d18 (diff)
downloadsqlalchemy-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.rst11
-rw-r--r--lib/sqlalchemy/orm/relationships.py7
-rw-r--r--test/orm/test_unitofwork.py4
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):