From 964651bad349079ea3abc6f09100b0a01a7b36bf Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Wed, 10 Sep 2025 09:21:27 -0700 Subject: [PATCH 1/2] add data migration to convert funnel and goals reports to new structure --- .../14_add_link_and_pixel/migration.sql | 26 +++++++++++++++++++ src/components/icons.ts | 1 + 2 files changed, 27 insertions(+) diff --git a/prisma/migrations/14_add_link_and_pixel/migration.sql b/prisma/migrations/14_add_link_and_pixel/migration.sql index 45320b036..4e51bdb14 100644 --- a/prisma/migrations/14_add_link_and_pixel/migration.sql +++ b/prisma/migrations/14_add_link_and_pixel/migration.sql @@ -71,3 +71,29 @@ CREATE INDEX "pixel_team_id_idx" ON "pixel"("team_id"); -- CreateIndex CREATE INDEX "pixel_created_at_idx" ON "pixel"("created_at"); + +-- DataMigration +UPDATE "report" +SET parameters = parameters - 'websiteId' - 'dateRange' +WHERE type = 'funnel'; + +INSERT INTO "report" (report_id, user_id, website_id, type, name, description, parameters, created_at, updated_at) +SELECT gen_random_uuid(), + user_id, + website_id, + 'goal', + concat(name, ' - ', elem ->> 'value'), + description, + jsonb_build_object( + 'type', CASE WHEN elem ->> 'type' = 'url' THEN 'path' + ELSE elem ->> 'type' END, + 'value', elem ->> 'value' + ) AS parameters, + created_at, + updated_at +FROM "report" +CROSS JOIN LATERAL jsonb_array_elements(parameters -> 'goals') elem +WHERE elem ->> 'type' IN ('event', 'url') + and type = 'goal'; + +DELETE FROM "report" WHERE parameters ? 'goals' and type = 'goal'; \ No newline at end of file diff --git a/src/components/icons.ts b/src/components/icons.ts index c96a27b67..287dc650c 100644 --- a/src/components/icons.ts +++ b/src/components/icons.ts @@ -59,6 +59,7 @@ export { Funnel, Lightbulb, Lightning, + Location, Magnet, Money, Network, From 1825524e95af5107538a4c4a57917b5948db5885 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Wed, 10 Sep 2025 09:29:49 -0700 Subject: [PATCH 2/2] convert report type before data migratino --- prisma/migrations/14_add_link_and_pixel/migration.sql | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/prisma/migrations/14_add_link_and_pixel/migration.sql b/prisma/migrations/14_add_link_and_pixel/migration.sql index 4e51bdb14..14feaa66a 100644 --- a/prisma/migrations/14_add_link_and_pixel/migration.sql +++ b/prisma/migrations/14_add_link_and_pixel/migration.sql @@ -73,9 +73,8 @@ CREATE INDEX "pixel_team_id_idx" ON "pixel"("team_id"); CREATE INDEX "pixel_created_at_idx" ON "pixel"("created_at"); -- DataMigration -UPDATE "report" -SET parameters = parameters - 'websiteId' - 'dateRange' -WHERE type = 'funnel'; +UPDATE "report" SET parameters = parameters - 'websiteId' - 'dateRange' WHERE type = 'funnel'; +UPDATE "report" SET type = 'goal' WHERE type = 'goals'; INSERT INTO "report" (report_id, user_id, website_id, type, name, description, parameters, created_at, updated_at) SELECT gen_random_uuid(),