mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-24 14:06:36 +00:00
Create 0032_metadata_transfer.py
This commit is contained in:
parent
ba22aa2a47
commit
33acb5fc26
36
tubesync/sync/migrations/0032_metadata_transfer.py
Normal file
36
tubesync/sync/migrations/0032_metadata_transfer.py
Normal file
@ -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,
|
||||
),
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user