From cad0b10fbb8814e4cecfbbb5ec83e5aca96c6481 Mon Sep 17 00:00:00 2001 From: mguschin Date: Tue, 12 May 2026 21:47:43 +0300 Subject: [PATCH] fix: delete stale cached albums that no longer exist in VK After refresh_vk_catalog syncs the album list from VK, remove any VkCachedAlbum rows whose album_id was not returned by the API. Co-Authored-By: Claude Sonnet 4.6 --- web/tasks/vk_catalog.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/web/tasks/vk_catalog.py b/web/tasks/vk_catalog.py index aa294fa..574c837 100644 --- a/web/tasks/vk_catalog.py +++ b/web/tasks/vk_catalog.py @@ -62,6 +62,16 @@ def _sync_user(db, user_id: int, token: str, group_id: str) -> None: count=a.get("count"), fetched_at=now, )) + # Delete cached albums that no longer exist in VK + ( + db.query(VkCachedAlbum) + .filter( + VkCachedAlbum.user_id == user_id, + VkCachedAlbum.vk_group_id == group_id, + VkCachedAlbum.album_id.notin_(album_ids), + ) + .delete(synchronize_session=False) + ) db.flush() # ── products (extended=1 gives albums_ids per product) ───────────────────