Fix: filesystem providers missing in_library
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 17 Dec 2025 18:05:07 +0000 (19:05 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 17 Dec 2025 18:05:07 +0000 (19:05 +0100)
music_assistant/controllers/music.py

index 2c670632dd7a6ff94495e702071207d86434afdf..f1bc2270e71e007c58fa9c8e493a2007ff947641 100644 (file)
@@ -97,7 +97,7 @@ CONF_RESET_DB = "reset_db"
 DEFAULT_SYNC_INTERVAL = 12 * 60  # default sync interval in minutes
 CONF_SYNC_INTERVAL = "sync_interval"
 CONF_DELETED_PROVIDERS = "deleted_providers"
-DB_SCHEMA_VERSION: Final[int] = 24
+DB_SCHEMA_VERSION: Final[int] = 25
 
 CACHE_CATEGORY_LAST_SYNC: Final[int] = 9
 CACHE_CATEGORY_SEARCH_RESULTS: Final[int] = 10
@@ -2167,6 +2167,15 @@ class MusicController(CoreController):
                 if "duplicate column" not in str(err):
                     raise
 
+        if prev_version <= 25:
+            # set in_library=True for local(file)-based providers
+            # these providers always represent the user's actual library
+            await self._database.execute(
+                f"UPDATE {DB_TABLE_PROVIDER_MAPPINGS} SET in_library = 1 "
+                "WHERE provider_domain IN "
+                "('filesystem_local', 'filesystem_smb', 'plex', 'jellyfin', 'opensubsonic');"
+            )
+
         # save changes
         await self._database.commit()