mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-25 14:36:34 +00:00
38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
# Hand-crafted data migration
|
|
|
|
from django.db import migrations
|
|
from common.utils import django_queryset_generator as qs_gen
|
|
from sync.models import Media
|
|
|
|
|
|
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
|
|
for key in {'migrated', '_using_table'}:
|
|
metadata.pop(key, None)
|
|
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,
|
|
),
|
|
]
|
|
|