From a2d462ee2171b205c9d5a9c8093fd76a04b53183 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 7 Jan 2025 00:46:48 +0100 Subject: [PATCH] fix corrupt chapters in tracks table --- music_assistant/controllers/music.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/music_assistant/controllers/music.py b/music_assistant/controllers/music.py index 5b795974..65a106c2 100644 --- a/music_assistant/controllers/music.py +++ b/music_assistant/controllers/music.py @@ -56,6 +56,7 @@ from music_assistant.constants import ( from music_assistant.helpers.api import api_command from music_assistant.helpers.database import DatabaseConnection from music_assistant.helpers.datetime import utc_timestamp +from music_assistant.helpers.json import json_loads, serialize_to_json from music_assistant.helpers.uri import parse_uri from music_assistant.helpers.util import TaskManager from music_assistant.models.core_controller import CoreController @@ -78,7 +79,7 @@ DEFAULT_SYNC_INTERVAL = 3 * 60 # default sync interval in minutes CONF_SYNC_INTERVAL = "sync_interval" CONF_DELETED_PROVIDERS = "deleted_providers" CONF_ADD_LIBRARY_ON_PLAY = "add_library_on_play" -DB_SCHEMA_VERSION: Final[int] = 13 +DB_SCHEMA_VERSION: Final[int] = 14 class MusicController(CoreController): @@ -1239,6 +1240,18 @@ class MusicController(CoreController): await self.database.execute(f"DROP TABLE IF EXISTS {DB_TABLE_PODCASTS}") await self.__create_database_tables() + if prev_version <= 13: + # migrate chapters in metadata + # this is leftover mess from the old chapters implementation + for db_row in await self.database.search(DB_TABLE_TRACKS, "position_start", "metadata"): + metadata = json_loads(db_row["metadata"]) + metadata["chapters"] = None + await self.database.update( + DB_TABLE_TRACKS, + {"item_id": db_row["item_id"]}, + {"metadata": serialize_to_json(metadata)}, + ) + # save changes await self.database.commit() -- 2.34.1