Fixed playlisttrack migration to add unique fid field

This commit is contained in:
Philipp Wolfer 2025-05-28 09:33:26 +02:00
parent 40d64abbc8
commit 42d3498564
1 changed files with 8 additions and 8 deletions

View File

@ -9,14 +9,14 @@ from funkwhale_api.federation import utils
from django.urls import reverse from django.urls import reverse
def gen_uuid(apps, schema_editor): def gen_uuid(apps, schema_editor):
MyModel = apps.get_model("playlists", "Playlist") MyModel = apps.get_model("playlists", "PlaylistTrack")
for row in MyModel.objects.all(): for row in MyModel.objects.all():
unique_uuid = uuid.uuid4() unique_uuid = uuid.uuid4()
while MyModel.objects.filter(uuid=unique_uuid).exists(): while MyModel.objects.filter(uuid=unique_uuid).exists():
unique_uuid = uuid.uuid4() unique_uuid = uuid.uuid4()
fid = utils.full_url( fid = utils.full_url(
reverse("federation:music:playlist-detail", kwargs={"uuid": unique_uuid}) reverse("federation:music:playlists-detail", kwargs={"uuid": unique_uuid})
) )
row.uuid = unique_uuid row.uuid = unique_uuid
row.fid = fid row.fid = fid
@ -38,8 +38,7 @@ class Migration(migrations.Migration):
migrations.AddField( migrations.AddField(
model_name="playlisttrack", model_name="playlisttrack",
name="fid", name="fid",
field=models.URLField(max_length=500 field=models.URLField(max_length=500, null=True),
),
), ),
migrations.AddField( migrations.AddField(
model_name="playlisttrack", model_name="playlisttrack",
@ -47,8 +46,8 @@ class Migration(migrations.Migration):
field=models.URLField(blank=True, max_length=500, null=True), field=models.URLField(blank=True, max_length=500, null=True),
), ),
migrations.RunPython(gen_uuid, reverse_code=migrations.RunPython.noop), migrations.RunPython(gen_uuid, reverse_code=migrations.RunPython.noop),
migrations.AlterField( migrations.AlterField(
model_name="playlist", model_name="playlisttrack",
name="uuid", name="uuid",
field=models.UUIDField(default=uuid.uuid4, null=False, unique=True), field=models.UUIDField(default=uuid.uuid4, null=False, unique=True),
), ),
@ -56,6 +55,7 @@ class Migration(migrations.Migration):
model_name="playlisttrack", model_name="playlisttrack",
name="fid", name="fid",
field=models.URLField( field=models.URLField(
db_index=True, max_length=500, unique=True db_index=True, max_length=500, unique=True, null=False
),), ),
),
] ]