summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAlexCLeduc <ledualex@gmail.com>2024-02-19 17:36:04 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2024-02-21 05:17:36 +0100
commit69e5b13c758cec55edbab342da8be509557589f4 (patch)
tree3c1cd88f502e72028f2b0f3bd02f7d923ee5f21b /django
parente72fdc850a7c7703a5e019de127a4256bc136479 (diff)
[5.0.x] Fixed #35238 -- Fixed database serialization crash when base managers use prefetch_related().
Regression in 139135627650ed6aaaf4c755b82c3bd43f2b8f51 following deprecation in eedbf930287cb72e9afab1f7208c24b1146b0c4ec. Backport of a084c5d35a6d00abd261338a374a4424764b4aee from main
Diffstat (limited to 'django')
-rw-r--r--django/db/backends/base/creation.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/django/db/backends/base/creation.py b/django/db/backends/base/creation.py
index cbac8a7f76..6856fdb596 100644
--- a/django/db/backends/base/creation.py
+++ b/django/db/backends/base/creation.py
@@ -135,7 +135,10 @@ class BaseDatabaseCreation:
queryset = model._base_manager.using(
self.connection.alias,
).order_by(model._meta.pk.name)
- yield from queryset.iterator()
+ chunk_size = (
+ 2000 if queryset._prefetch_related_lookups else None
+ )
+ yield from queryset.iterator(chunk_size=chunk_size)
# Serialize to a string
out = StringIO()