For extra peace of mind, get the file lock before updating storage paths

This commit is contained in:
Trenton Holmes 2024-10-06 12:33:00 -07:00
parent 8889018ad4
commit dc94c2df48

View File

@ -1,18 +1,18 @@
# Generated by Django 5.1.1 on 2024-10-03 14:47 # Generated by Django 5.1.1 on 2024-10-03 14:47
from django.conf import settings
from django.db import migrations from django.db import migrations
from django.db import models from django.db import models
from django.db import transaction from django.db import transaction
from filelock import FileLock
from documents.templating.utils import convert_format_str_to_template_format
def convert_from_format_to_template(apps, schema_editor): def convert_from_format_to_template(apps, schema_editor):
# TODO: Is there a signal to disable? I don't want documents getting moved while this is running
StoragePath = apps.get_model("documents", "StoragePath") StoragePath = apps.get_model("documents", "StoragePath")
from documents.templating.utils import convert_format_str_to_template_format with transaction.atomic(), FileLock(settings.MEDIA_LOCK):
with transaction.atomic():
for storage_path in StoragePath.objects.all(): for storage_path in StoragePath.objects.all():
storage_path.path = convert_format_str_to_template_format(storage_path.path) storage_path.path = convert_format_str_to_template_format(storage_path.path)
storage_path.save() storage_path.save()