From 05bbff15650cd952f32b2e5beb73bf38e890c3d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Vidra?= Date: Wed, 24 Jul 2024 13:18:12 +0200 Subject: [PATCH] fix: flow_user_progress migration (#467) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: David Pešička <61206880+pesickadavid@users.noreply.github.com> --- .../drizzle/migrations/0037_lyrical_shen.sql | 49 +++++++++++++------ 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/packages/db/drizzle/migrations/0037_lyrical_shen.sql b/packages/db/drizzle/migrations/0037_lyrical_shen.sql index 430d2eac..ad8c0533 100644 --- a/packages/db/drizzle/migrations/0037_lyrical_shen.sql +++ b/packages/db/drizzle/migrations/0037_lyrical_shen.sql @@ -1,20 +1,41 @@ -- Custom SQL migration file, put you code below! -- +WITH + CTE AS ( + SELECT + E.USER_HASH, + E.FLOW_ID, + E.EVENT_TIME, + ROW_NUMBER() OVER ( + PARTITION BY + E.USER_HASH, + E.FLOW_ID + ORDER BY + E.EVENT_TIME DESC + ) AS RN + FROM + EVENT E + WHERE + NOT EXISTS ( + SELECT + FUP.USER_HASH + FROM + FLOW_USER_PROGRESS FUP + WHERE + E.USER_HASH = FUP.USER_HASH + AND E.FLOW_ID = FUP.FLOW_ID + ) + AND E.EVENT_TYPE IN ('finishFlow', 'cancelFlow') + AND E.USER_HASH IS NOT NULL + ) + + INSERT INTO FLOW_USER_PROGRESS (USER_HASH, FLOW_ID, UPDATED_AT) SELECT - E.USER_HASH, - E.FLOW_ID, - E.EVENT_TIME + USER_HASH, + FLOW_ID, + EVENT_TIME FROM - EVENT E + CTE WHERE - NOT EXISTS ( - SELECT - FUP.USER_HASH - FROM - FLOW_USER_PROGRESS FUP - WHERE - E.USER_HASH = FUP.USER_HASH - ) - AND E.EVENT_TYPE IN ('finishFlow', 'cancelFlow') - AND E.USER_HASH IS NOT NULL \ No newline at end of file + RN = 1 \ No newline at end of file