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
def gen_uuid(apps, schema_editor):
MyModel = apps.get_model("playlists", "Playlist")
MyModel = apps.get_model("playlists", "PlaylistTrack")
for row in MyModel.objects.all():
unique_uuid = uuid.uuid4()
while MyModel.objects.filter(uuid=unique_uuid).exists():
unique_uuid = uuid.uuid4()
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.fid = fid
@ -38,8 +38,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name="playlisttrack",
name="fid",
field=models.URLField(max_length=500
),
field=models.URLField(max_length=500, null=True),
),
migrations.AddField(
model_name="playlisttrack",
@ -47,8 +46,8 @@ class Migration(migrations.Migration):
field=models.URLField(blank=True, max_length=500, null=True),
),
migrations.RunPython(gen_uuid, reverse_code=migrations.RunPython.noop),
migrations.AlterField(
model_name="playlist",
migrations.AlterField(
model_name="playlisttrack",
name="uuid",
field=models.UUIDField(default=uuid.uuid4, null=False, unique=True),
),
@ -56,6 +55,7 @@ class Migration(migrations.Migration):
model_name="playlisttrack",
name="fid",
field=models.URLField(
db_index=True, max_length=500, unique=True
),),
db_index=True, max_length=500, unique=True, null=False
),
),
]