funkwhale/api/funkwhale_api/music/migrations/0024_populate_uuid.py

78 wiersze
2.3 KiB
Python
Czysty Zwykły widok Historia

2018-04-07 15:09:28 +00:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import uuid
from django.db import migrations, models
def populate_uuids(apps, schema_editor):
models = [
2018-06-09 13:36:16 +00:00
"Album",
"Artist",
"Importbatch",
"Importjob",
"Lyrics",
"Track",
"Trackfile",
"Work",
2018-04-07 15:09:28 +00:00
]
for m in models:
2018-06-09 13:36:16 +00:00
kls = apps.get_model("music", m)
qs = kls.objects.filter(uuid__isnull=True).only("id")
print("Setting uuids for {} ({} objects)".format(m, len(qs)))
2018-04-07 15:09:28 +00:00
for o in qs:
o.uuid = uuid.uuid4()
2018-06-09 13:36:16 +00:00
o.save(update_fields=["uuid"])
2018-04-07 15:09:28 +00:00
def rewind(apps, schema_editor):
pass
class Migration(migrations.Migration):
2018-06-09 13:36:16 +00:00
dependencies = [("music", "0023_auto_20180407_1010")]
2018-04-07 15:09:28 +00:00
operations = [
migrations.RunPython(populate_uuids, rewind),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="album",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="artist",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="importbatch",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="importjob",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="lyrics",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="track",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="trackfile",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
migrations.AlterField(
2018-06-09 13:36:16 +00:00
model_name="work",
name="uuid",
2018-04-07 15:09:28 +00:00
field=models.UUIDField(db_index=True, default=uuid.uuid4, unique=True),
),
]