mirror of
https://github.com/umami-software/umami.git
synced 2025-12-06 01:18:00 +01:00
Merge remote-tracking branch 'origin/dev' into dev
Some checks are pending
Node.js CI / build (postgresql, 18.18) (push) Waiting to run
Some checks are pending
Node.js CI / build (postgresql, 18.18) (push) Waiting to run
This commit is contained in:
commit
366c52d703
5 changed files with 52 additions and 6 deletions
|
|
@ -71,3 +71,49 @@ CREATE INDEX "pixel_team_id_idx" ON "pixel"("team_id");
|
|||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "pixel_created_at_idx" ON "pixel"("created_at");
|
||||
|
||||
-- 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)
|
||||
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 type = 'goal'
|
||||
and elem ->> 'type' IN ('event', 'url');
|
||||
|
||||
DELETE FROM "report" WHERE type = 'goal' and parameters ? 'goals';
|
||||
|
|
@ -59,6 +59,7 @@ export {
|
|||
Funnel,
|
||||
Lightbulb,
|
||||
Lightning,
|
||||
Location,
|
||||
Magnet,
|
||||
Money,
|
||||
Network,
|
||||
|
|
|
|||
|
|
@ -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 }[],
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
`,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue