diff options
| author | AlexCLeduc <ledualex@gmail.com> | 2024-02-19 17:36:04 -0500 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2024-02-21 05:17:36 +0100 |
| commit | 69e5b13c758cec55edbab342da8be509557589f4 (patch) | |
| tree | 3c1cd88f502e72028f2b0f3bd02f7d923ee5f21b /django | |
| parent | e72fdc850a7c7703a5e019de127a4256bc136479 (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.py | 5 |
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() |
