From 33acb5fc26f63356bfa8064297d2f183a54c331e Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 23 Apr 2025 15:19:06 -0400 Subject: [PATCH] Create 0032_metadata_transfer.py --- .../sync/migrations/0032_metadata_transfer.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tubesync/sync/migrations/0032_metadata_transfer.py diff --git a/tubesync/sync/migrations/0032_metadata_transfer.py b/tubesync/sync/migrations/0032_metadata_transfer.py new file mode 100644 index 00000000..ce4b8344 --- /dev/null +++ b/tubesync/sync/migrations/0032_metadata_transfer.py @@ -0,0 +1,36 @@ +# Hand-crafted data migration + +from django.db import migrations +from common.utils import django_queryset_generator as qs_gen + + +def use_tables(apps, schema_editor): + Media = apps.get_model('sync', 'Media') + qs = Media.objects.filter(metadata__isnull=False) + for media in qs_gen(qs): + media.save_to_metadata('migrated', True) + +def restore_metadata_column(apps, schema_editor): + Media = apps.get_model('sync', 'Media') + qs = Media.objects.filter(metadata__isnull=False) + for media in qs_gen(qs): + metadata = media.loaded_metadata + del metadata['migrated'] + del metadata['_using_table'] + media.metadata = media.metadata_dumps(arg_dict=metadata) + media.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('sync', '0031_squashed_metadata_metadataformat'), + ] + + operations = [ + migrations.RunPython( + code=use_tables, + reverse_code=restore_metadata_column, + ), + ] +