feat(service-storage-harness): slice 3 — migrate MediaIndex onto harness (scoped replace_items, +service_id)
Register MediaIndex as a harness concern with ALTER TABLE migration to add service_id column (idempotent). Scope replace_items by service_id (FIXES latent global-clear bug where building for one Jellyfin wiped another's rows). Scope query by service_id (empty-string = all rows, backward-compat). Thread service_id through build_media_index + worker + query_media router. New regression test proves scoped replace preserves other services' rows. Backend: 321 pytest pass, ruff clean. Frontend: build green.
This commit is contained in:
@@ -143,6 +143,10 @@ def get_service_data_harness() -> ServiceDataHarness:
|
||||
from media_library_viewer_api.services.qbittorrent_store import QBITTORRENT_CONCERN
|
||||
|
||||
_HARNESS.register(QBITTORRENT_CONCERN)
|
||||
|
||||
from media_library_viewer_api.services.media_index_impl import MEDIA_INDEX_CONCERN
|
||||
|
||||
_HARNESS.register(MEDIA_INDEX_CONCERN)
|
||||
_HARNESS.run_migrations()
|
||||
return _HARNESS
|
||||
|
||||
|
||||
Reference in New Issue
Block a user