From db0d64bfd2d9ecbc1aabf0dcb308c85fb8abf018 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Sat, 5 Jul 2025 02:44:27 +0300 Subject: [PATCH] Features: 1) Add exception handling to product deletion process in `delete_never_ordered_products` command; Fixes: 1) Ensure command continues execution if an error occurs in batch deletion; Extra: 1) Minor formatting adjustment by removing an unnecessary blank line. --- core/management/commands/delete_never_ordered_products.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/management/commands/delete_never_ordered_products.py b/core/management/commands/delete_never_ordered_products.py index c8bd762e..c90e3533 100644 --- a/core/management/commands/delete_never_ordered_products.py +++ b/core/management/commands/delete_never_ordered_products.py @@ -1,10 +1,10 @@ from django.core.management.base import BaseCommand -from django.db import transaction from core.models import AttributeValue, Product, ProductImage CHUNK_SIZE = 5000 + class Command(BaseCommand): help = "Delete Product rows with no OrderProduct, in batches" @@ -15,10 +15,12 @@ class Command(BaseCommand): ) if not batch_ids: break - with transaction.atomic(): + try: AttributeValue.objects.filter(product_id__in=batch_ids).delete() ProductImage.objects.filter(product_id__in=batch_ids).delete() Product.objects.filter(pk__in=batch_ids).delete() + except Exception: + continue self.stdout.write(f"Deleted {len(batch_ids)} products…") self.stdout.write("✅ All unordered products removed.")