clean up funnel migration and report errors

This commit is contained in:
Francis Cao 2025-09-10 16:38:51 -07:00
parent 1825524e95
commit f3125c2add
4 changed files with 31 additions and 11 deletions

View file

@ -72,8 +72,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';
-- DataMigration Funnel
DELETE FROM "report" WHERE type = 'funnel' and jsonb_array_length(parameters->'steps') = 1;
UPDATE "report" SET parameters = parameters - 'websiteId' - 'dateRange' - 'urls' WHERE type = 'funnel';
UPDATE "report"
SET parameters = jsonb_set(
parameters,
'{steps}',
(
SELECT jsonb_agg(
CASE
WHEN step->>'type' = 'url'
THEN jsonb_set(step, '{type}', '"path"')
ELSE step
END
)
FROM jsonb_array_elements(parameters->'steps') step
)
)
WHERE type = 'funnel'
and parameters @> '{"steps":[{"type":"url"}]}';
-- DataMigration Goals
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)
@ -92,7 +113,7 @@ SELECT gen_random_uuid(),
updated_at
FROM "report"
CROSS JOIN LATERAL jsonb_array_elements(parameters -> 'goals') elem
WHERE elem ->> 'type' IN ('event', 'url')
and type = 'goal';
WHERE type = 'goal'
and elem ->> 'type' IN ('event', 'url');
DELETE FROM "report" WHERE parameters ? 'goals' and type = 'goal';
DELETE FROM "report" WHERE type = 'goal' and parameters ? 'goals';

View file

@ -32,14 +32,13 @@ async function relationalQuery(
): Promise<FunnelResult[]> {
const { startDate, endDate, window, steps } = parameters;
const { rawQuery, getAddIntervalQuery, parseFilters } = prisma;
const { levelOneQuery, levelQuery, sumQuery, params } = getFunnelQuery(steps, window);
const { filterQuery, joinSessionQuery, cohortQuery, queryParams } = parseFilters({
...filters,
websiteId,
startDate,
endDate,
});
const { levelOneQuery, levelQuery, sumQuery, params } = getFunnelQuery(steps, window);
function getFunnelQuery(
steps: { type: string; value: string }[],

View file

@ -48,15 +48,15 @@ async function relationalQuery(
from website_event
${cohortQuery}
${joinSessionQuery}
where website_id = {websiteId:UUID}
where website_id = {{websiteId::uuid}}
${dateQuery}
${filterQuery}
) as total
from website_event
${cohortQuery}
${joinSessionQuery}
where website_id = {websiteId:UUID}
and ${column} = {value:String}
where website_id = {{websiteId::uuid}}
and ${column} = {{value}}
${dateQuery}
${filterQuery}
`,

View file

@ -75,7 +75,7 @@ async function relationalQuery(
`
select
session.country as name,
sum(r.revenue) value
sum(revenue) value
from revenue
join website_event
on website_event.website_id = revenue.website_id