From 91de19d8cb73269bbe6e495171092d48d8274c68 Mon Sep 17 00:00:00 2001 From: Toni Nurmi Date: Mon, 1 Feb 2021 16:18:38 +0200 Subject: [PATCH] add migration to fix incorrect file counts on directories --- .../migrations/0033_auto_20210201_1551.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 src/metax_api/migrations/0033_auto_20210201_1551.py diff --git a/src/metax_api/migrations/0033_auto_20210201_1551.py b/src/metax_api/migrations/0033_auto_20210201_1551.py new file mode 100755 index 00000000..e90ea617 --- /dev/null +++ b/src/metax_api/migrations/0033_auto_20210201_1551.py @@ -0,0 +1,30 @@ +# Generated by Django 3.1.2 on 2021-02-01 13:51 +import logging + +from django.db import migrations + +logger = logging.getLogger(__name__) + +def recount_directory_files(apps, schema_editor): + Directory = apps.get_model('metax_api', 'Directory') + dirs_with_no_files = Directory.objects.filter(file_count=0, parent_directory_id=None) + logger.info(f"found {dirs_with_no_files.count()} directories without files") + aff_rows = 0 + for dir in dirs_with_no_files: + dir.calculate_byte_size_and_file_count() + aff_rows += 1 + logger.info(f"migration 0033 complete with {aff_rows} affected rows") + + +def revert(apps, schema_editor): + pass + +class Migration(migrations.Migration): + + dependencies = [ + ('metax_api', '0032_auto_20201222_1321'), + ] + + operations = [ + migrations.RunPython(recount_directory_files, revert), + ]