From cd81f750b4a39b9f7c12949fa7c062aa4489486b Mon Sep 17 00:00:00 2001 From: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:24:57 -0700 Subject: [PATCH] Chore: Minor migration optimization for workflow titles (#11197) * Makes the migration just a little more efficient * Do it in batches, just in case * Fixes the model klass name --- .../1073_migrate_workflow_title_jinja.py | 44 ++++++++++++------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/src/documents/migrations/1073_migrate_workflow_title_jinja.py b/src/documents/migrations/1073_migrate_workflow_title_jinja.py index c3f929eff9..9d80a277fd 100644 --- a/src/documents/migrations/1073_migrate_workflow_title_jinja.py +++ b/src/documents/migrations/1073_migrate_workflow_title_jinja.py @@ -3,7 +3,6 @@ import logging from django.db import migrations from django.db import models -from django.db import transaction from documents.templating.utils import convert_format_str_to_template_format @@ -11,21 +10,34 @@ logger = logging.getLogger("paperless.migrations") def convert_from_format_to_template(apps, schema_editor): - WorkflowActions = apps.get_model("documents", "WorkflowAction") - - with transaction.atomic(): - for WorkflowAction in WorkflowActions.objects.all(): - if not WorkflowAction.assign_title: - continue - WorkflowAction.assign_title = convert_format_str_to_template_format( - WorkflowAction.assign_title, - ) - logger.debug( - "Converted WorkflowAction id %d title to template format: %s", - WorkflowAction.id, - WorkflowAction.assign_title, - ) - WorkflowAction.save() + WorkflowAction = apps.get_model("documents", "WorkflowAction") + + batch_size = 500 + actions_to_update = [] + + queryset = ( + WorkflowAction.objects.filter(assign_title__isnull=False) + .exclude(assign_title="") + .only("id", "assign_title") + ) + + for action in queryset: + action.assign_title = convert_format_str_to_template_format( + action.assign_title, + ) + logger.debug( + "Converted WorkflowAction id %d title to template format: %s", + action.id, + action.assign_title, + ) + actions_to_update.append(action) + + if actions_to_update: + WorkflowAction.objects.bulk_update( + actions_to_update, + ["assign_title"], + batch_size=batch_size, + ) class Migration(migrations.Migration): -- 2.47.3