fix(migrations): rebase on develop

This commit is contained in:
ArneBo 2025-02-13 21:38:24 +01:00
parent 43c1bee971
commit 0a475d1a02
14 changed files with 4 additions and 371 deletions

View File

@ -1,32 +0,0 @@
# Generated by Django 3.2.23 on 2024-01-11 14:34
import datetime
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
("music", "0057_auto_20221118_2108"),
]
operations = [
migrations.CreateModel(
name="UploadGroup",
fields=[
(
"name",
models.CharField(default=datetime.datetime.now, max_length=255),
),
(
"guid",
models.UUIDField(
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
),
),
],
),
]

View File

@ -36,7 +36,6 @@ def set_all_artists_credit(apps, schema_editor):
class Migration(migrations.Migration):
dependencies = [
("music", "0058_upload_quality"),
("playlists", "0008_playlist_library_drop"),
]
operations = [

View File

@ -1,23 +0,0 @@
# Generated by Django 3.2.23 on 2024-01-15 10:55
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("music", "0058_uploadgroup"),
]
operations = [
migrations.AddField(
model_name="upload",
name="upload_group",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="uploads",
to="music.uploadgroup",
),
),
]

View File

@ -1,20 +0,0 @@
# Generated by Django 3.2.23 on 2024-01-15 10:55
from django.db import migrations
def populate_upload_groups(apps, schema_editor):
upload = apps.get_model("music", "Upload")
upload_group = apps.get_model("music", "UploadGroup")
for upload in upload.objects.all():
group, _ = upload_group.objects.get_or_create(name=upload.import_reference)
upload.upload_group = group
upload.save()
class Migration(migrations.Migration):
dependencies = [
("music", "0059_upload_upload_group"),
]
operations = [migrations.RunPython(populate_upload_groups)]

View File

@ -1,21 +0,0 @@
# Generated by Django 4.2.9 on 2025-01-03 20:43
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("music", "0059_remove_album_artist_remove_track_artist_artistcredit_and_more"),
("playlists", "0007_alter_playlist_actor_alter_playlisttrack_uuid_and_more"),
]
operations = [
migrations.RemoveField(
model_name="library",
name="description",
),
migrations.RemoveField(
model_name="library",
name="followers_url",
),
]

View File

@ -1,22 +0,0 @@
# Generated by Django 3.2.23 on 2024-01-15 11:00
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("music", "0060_auto_20240115_1055"),
]
operations = [
migrations.AlterField(
model_name="upload",
name="upload_group",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="uploads",
to="music.uploadgroup",
),
),
]

View File

@ -46,6 +46,7 @@ def migrate_libraries_to_playlist(apps, schema_editor):
actor=library.actor,
creation_date=library.creation_date,
privacy_level=library.privacy_level,
description=library.description,
uuid=(new_uuid := uuid.uuid4()),
fid=federation_utils.full_url(
reverse(
@ -86,7 +87,7 @@ def migrate_libraries_to_playlist(apps, schema_editor):
uuid=(new_uuid := uuid.uuid4()),
fid=federation_utils.full_url(
reverse(
f"federation:music:playlists-detail",
f"federation:music:libraries-detail",
kwargs={"uuid": new_uuid},
)
),
@ -99,7 +100,8 @@ def migrate_libraries_to_playlist(apps, schema_editor):
class Migration(migrations.Migration):
dependencies = [
("music", "0060_remove_library_description_and_more"),
("music", "0060_empty_for_test"),
("playlists", "0008_playlist_library_drop"),
]
operations = [
migrations.RunPython(

View File

@ -1,23 +0,0 @@
# Generated by Django 3.2.23 on 2024-01-22 13:10
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("music", "0061_alter_upload_upload_group"),
]
operations = [
migrations.AlterField(
model_name="upload",
name="upload_group",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="uploads",
to="music.uploadgroup",
),
),
]

View File

@ -1,42 +0,0 @@
# Generated by Django 4.2.9 on 2024-12-21 20:02
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("music", "0061_migrate_libraries_to_playlist"),
]
operations = [
migrations.AddField(
model_name="upload",
name="third_party_provider",
field=models.CharField(blank=True, max_length=100, null=True),
),
migrations.AlterField(
model_name="uploadversion",
name="mimetype",
field=models.CharField(
choices=[
("audio/mp3", "mp3"),
("audio/mpeg3", "mp3"),
("audio/x-mp3", "mp3"),
("audio/mpeg", "mp3"),
("video/ogg", "ogg"),
("audio/ogg", "ogg"),
("audio/opus", "opus"),
("audio/x-m4a", "aac"),
("audio/x-m4a", "m4a"),
("audio/m4a", "m4a"),
("audio/x-flac", "flac"),
("audio/flac", "flac"),
("audio/aiff", "aif"),
("audio/x-aiff", "aif"),
("audio/aiff", "aiff"),
("audio/x-aiff", "aiff"),
],
max_length=50,
),
),
]

View File

@ -1,31 +0,0 @@
# Generated by Django 3.2.23 on 2024-01-22 13:58
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
("federation", "0028_auto_20221027_1141"),
("music", "0062_alter_upload_upload_group"),
]
operations = [
migrations.AddField(
model_name="uploadgroup",
name="created_at",
field=models.DateTimeField(default=django.utils.timezone.now),
),
migrations.AddField(
model_name="uploadgroup",
name="owner",
field=models.ForeignKey(
default=1,
on_delete=django.db.models.deletion.CASCADE,
related_name="upload_groups",
to="federation.actor",
),
preserve_default=False,
),
]

View File

@ -1,13 +0,0 @@
# Generated by Django 4.2.9 on 2024-08-28 16:33
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("music", "0058_upload_quality"),
("music", "0063_auto_20240122_1358"),
]
operations = []

View File

@ -1,12 +0,0 @@
# Generated by Django 4.2.9 on 2024-09-11 13:54
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("music", "0059_remove_album_artist_remove_track_artist_artistcredit_and_more"),
("music", "0064_merge_0058_upload_quality_0063_auto_20240122_1358"),
]
operations = []

View File

@ -1,21 +0,0 @@
# Generated by Django 4.2.9 on 2025-01-03 20:43
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("music", "0065_merge_20240911_1354"),
("playlists", "0007_alter_playlist_actor_alter_playlisttrack_uuid_and_more"),
]
operations = [
migrations.RemoveField(
model_name="library",
name="description",
),
migrations.RemoveField(
model_name="library",
name="followers_url",
),
]

View File

@ -1,108 +0,0 @@
# Generated by Django 4.2.9 on 2025-01-03 16:12
from django.db import migrations, models
from django.db import IntegrityError
from funkwhale_api.federation import utils as federation_utils
from django.urls import reverse
import uuid
def insert_tracks_to_playlist(apps, playlist, uploads):
PlaylistTrack = apps.get_model("playlists", "PlaylistTrack")
plts = [
PlaylistTrack(
creation_date=playlist.creation_date,
playlist=playlist,
track=upload.track,
index=0 + i,
uuid=(new_uuid := uuid.uuid4()),
fid=federation_utils.full_url(
reverse(
f"federation:music:playlists-detail",
kwargs={"uuid": new_uuid},
)
),
)
for i, upload in enumerate(uploads)
if upload.track
]
return PlaylistTrack.objects.bulk_create(plts)
def migrate_libraries_to_playlist(apps, schema_editor):
Playlist = apps.get_model("playlists", "Playlist")
Library = apps.get_model("music", "Library")
LibraryFollow = apps.get_model("federation", "LibraryFollow")
Follow = apps.get_model("federation", "Follow")
User = apps.get_model("users", "User")
Actor = apps.get_model("federation", "Actor")
# library to playlist
for library in Library.objects.all():
playlist = Playlist.objects.create(
name=library.name,
actor=library.actor,
creation_date=library.creation_date,
privacy_level=library.privacy_level,
uuid=(new_uuid := uuid.uuid4()),
fid=federation_utils.full_url(
reverse(
f"federation:music:playlists-detail",
kwargs={"uuid": new_uuid},
)
),
)
playlist.save()
if library.uploads.all().exists():
insert_tracks_to_playlist(apps, playlist, library.uploads.all())
# library follows to user follow
for lib_follow in LibraryFollow.objects.filter(target=library):
try:
Follow.objects.create(
uuid=lib_follow.uuid,
target=library.actor,
actor=lib_follow.actor,
approved=lib_follow.approved,
creation_date=lib_follow.creation_date,
modification_date=lib_follow.modification_date,
)
except IntegrityError:
pass
LibraryFollow.objects.all().delete()
# migrate uploads to new library
for actor in Actor.objects.all():
privacy_levels = ["me", "instance", "everyone"]
for privacy_level in privacy_levels:
build_in_lib = Library.objects.create(
actor=actor,
privacy_level=privacy_level,
name=privacy_level,
uuid=(new_uuid := uuid.uuid4()),
fid=federation_utils.full_url(
reverse(
f"federation:music:playlists-detail",
kwargs={"uuid": new_uuid},
)
),
)
for library in actor.libraries.filter(privacy_level=privacy_level):
library.uploads.all().update(library=build_in_lib)
if library.pk is not build_in_lib.pk:
library.delete()
class Migration(migrations.Migration):
dependencies = [
("music", "0066_remove_library_description_and_more"),
]
operations = [
migrations.RunPython(
migrate_libraries_to_playlist, reverse_code=migrations.RunPython.noop
),
]