From beb9530270cb34e733c863f7b16b19912d4d0fef Mon Sep 17 00:00:00 2001 From: hmjn Date: Sun, 2 Aug 2026 18:21:32 +0900 Subject: [PATCH] fix(db): preserve active thumbnail jobs during migration --- apps/server/drizzle/0022_sleepy_turbo.sql | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/server/drizzle/0022_sleepy_turbo.sql b/apps/server/drizzle/0022_sleepy_turbo.sql index 03a2ca6a..e63864f0 100644 --- a/apps/server/drizzle/0022_sleepy_turbo.sql +++ b/apps/server/drizzle/0022_sleepy_turbo.sql @@ -3,13 +3,16 @@ BEGIN DELETE FROM "jobs" AS duplicate USING "jobs" AS retained WHERE duplicate."type" = 'generate_thumbnail' - AND duplicate."status" IN ('pending', 'in_progress') + AND duplicate."status" = 'pending' AND retained."type" = duplicate."type" AND retained."status" IN ('pending', 'in_progress') AND retained."source_id" = duplicate."source_id" AND retained."payload"->>'mediaId' = duplicate."payload"->>'mediaId' AND retained."payload"->>'size' = duplicate."payload"->>'size' - AND (retained."created_at", retained."id") < (duplicate."created_at", duplicate."id"); + AND ( + retained."status" = 'in_progress' + OR (retained."created_at", retained."id") < (duplicate."created_at", duplicate."id") + ); CREATE UNIQUE INDEX "uq_jobs_active_thumbnail" ON "jobs" USING btree ("source_id",("payload"->>'mediaId'),("payload"->>'size')) WHERE "jobs"."type" = 'generate_thumbnail' AND "jobs"."status" IN ('pending', 'in_progress')