mirror of
https://github.com/kremalicious/umami.git
synced 2024-11-25 11:28:50 +01:00
Updated schema.
This commit is contained in:
parent
eebf145efc
commit
d8c8df2955
17
lib/db.js
17
lib/db.js
@ -16,7 +16,7 @@ export async function getWebsite(website_id) {
|
|||||||
return runQuery(
|
return runQuery(
|
||||||
prisma.website.findOne({
|
prisma.website.findOne({
|
||||||
where: {
|
where: {
|
||||||
website_id,
|
website_uuid: website_id,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
@ -26,10 +26,10 @@ export async function createSession(website_id, session_id, data) {
|
|||||||
await runQuery(
|
await runQuery(
|
||||||
prisma.session.create({
|
prisma.session.create({
|
||||||
data: {
|
data: {
|
||||||
session_id,
|
session_uuid: session_id,
|
||||||
website: {
|
website: {
|
||||||
connect: {
|
connect: {
|
||||||
website_id,
|
website_uuid: website_id,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
...data,
|
...data,
|
||||||
@ -42,19 +42,24 @@ export async function getSession(session_id) {
|
|||||||
return runQuery(
|
return runQuery(
|
||||||
prisma.session.findOne({
|
prisma.session.findOne({
|
||||||
where: {
|
where: {
|
||||||
session_id,
|
session_uuid: session_id,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function savePageView(session_id, url, referrer) {
|
export async function savePageView(website_id, session_id, url, referrer) {
|
||||||
return runQuery(
|
return runQuery(
|
||||||
prisma.pageview.create({
|
prisma.pageview.create({
|
||||||
data: {
|
data: {
|
||||||
|
website: {
|
||||||
|
connect: {
|
||||||
|
website_uuid: website_id,
|
||||||
|
},
|
||||||
|
},
|
||||||
session: {
|
session: {
|
||||||
connect: {
|
connect: {
|
||||||
session_id,
|
session_uuid: session_id,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
url,
|
url,
|
||||||
|
@ -103,6 +103,7 @@ export function parseCollectRequest(req) {
|
|||||||
return {
|
return {
|
||||||
success: 1,
|
success: 1,
|
||||||
type,
|
type,
|
||||||
|
website_id,
|
||||||
session_id,
|
session_id,
|
||||||
url,
|
url,
|
||||||
referrer,
|
referrer,
|
||||||
|
@ -8,10 +8,10 @@ export default async (req, res) => {
|
|||||||
const values = parseCollectRequest(req);
|
const values = parseCollectRequest(req);
|
||||||
|
|
||||||
if (values.success) {
|
if (values.success) {
|
||||||
const { type, session_id, url, referrer } = values;
|
const { type, website_id, session_id, url, referrer } = values;
|
||||||
|
|
||||||
if (type === 'pageview') {
|
if (type === 'pageview') {
|
||||||
await savePageView(session_id, url, referrer).catch(() => {
|
await savePageView(website_id, session_id, url, referrer).catch(() => {
|
||||||
values.success = 0;
|
values.success = 0;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -12,9 +12,11 @@ model event {
|
|||||||
event_id Int @default(autoincrement()) @id
|
event_id Int @default(autoincrement()) @id
|
||||||
event_type String
|
event_type String
|
||||||
event_value String
|
event_value String
|
||||||
session_id String?
|
session_id Int
|
||||||
url String
|
url String
|
||||||
session session? @relation(fields: [session_id], references: [session_id])
|
website_id Int
|
||||||
|
session session @relation(fields: [session_id], references: [session_id])
|
||||||
|
website website @relation(fields: [website_id], references: [website_id])
|
||||||
|
|
||||||
@@index([created_at], name: "event_created_at_idx")
|
@@index([created_at], name: "event_created_at_idx")
|
||||||
}
|
}
|
||||||
@ -22,34 +24,40 @@ model event {
|
|||||||
model pageview {
|
model pageview {
|
||||||
created_at DateTime? @default(now())
|
created_at DateTime? @default(now())
|
||||||
referrer String?
|
referrer String?
|
||||||
session_id String?
|
session_id Int
|
||||||
url String
|
url String
|
||||||
view_id Int @default(autoincrement()) @id
|
view_id Int @default(autoincrement()) @id
|
||||||
session session? @relation(fields: [session_id], references: [session_id])
|
website_id Int
|
||||||
|
session session @relation(fields: [session_id], references: [session_id])
|
||||||
|
website website @relation(fields: [website_id], references: [website_id])
|
||||||
|
|
||||||
@@index([created_at], name: "pageview_created_at_idx")
|
@@index([created_at], name: "pageview_created_at_idx")
|
||||||
}
|
}
|
||||||
|
|
||||||
model session {
|
model session {
|
||||||
browser String?
|
browser String?
|
||||||
country String?
|
country String?
|
||||||
created_at DateTime? @default(now())
|
created_at DateTime? @default(now())
|
||||||
hostname String?
|
hostname String?
|
||||||
language String?
|
language String?
|
||||||
os String?
|
os String?
|
||||||
screen String?
|
screen String?
|
||||||
session_id String @id
|
session_id Int @default(autoincrement()) @id
|
||||||
website_id String?
|
session_uuid String @unique
|
||||||
website website? @relation(fields: [website_id], references: [website_id])
|
website_id Int
|
||||||
event event[]
|
website website @relation(fields: [website_id], references: [website_id])
|
||||||
pageview pageview[]
|
event event[]
|
||||||
|
pageview pageview[]
|
||||||
|
|
||||||
@@index([created_at], name: "session_created_at_idx")
|
@@index([created_at], name: "session_created_at_idx")
|
||||||
}
|
}
|
||||||
|
|
||||||
model website {
|
model website {
|
||||||
created_at DateTime? @default(now())
|
created_at DateTime? @default(now())
|
||||||
hostname String @unique
|
hostname String
|
||||||
website_id String @id
|
website_id Int @default(autoincrement()) @id
|
||||||
session session[]
|
website_uuid String @unique
|
||||||
|
event event[]
|
||||||
|
pageview pageview[]
|
||||||
|
session session[]
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
create table website (
|
create table website (
|
||||||
website_id uuid primary key,
|
website_id serial primary key,
|
||||||
hostname varchar(100) unique not null,
|
website_uuid uuid unique not null,
|
||||||
|
hostname varchar(100) not null,
|
||||||
created_at timestamp with time zone default current_timestamp
|
created_at timestamp with time zone default current_timestamp
|
||||||
);
|
);
|
||||||
|
|
||||||
create table session (
|
create table session (
|
||||||
session_id uuid primary key,
|
session_id serial primary key,
|
||||||
website_id uuid references website(website_id) on delete cascade,
|
session_uuid uuid unique not null,
|
||||||
|
website_id int not null references website(website_id) on delete cascade,
|
||||||
created_at timestamp with time zone default current_timestamp,
|
created_at timestamp with time zone default current_timestamp,
|
||||||
hostname varchar(100),
|
hostname varchar(100),
|
||||||
browser varchar(20),
|
browser varchar(20),
|
||||||
@ -18,7 +20,8 @@ create table session (
|
|||||||
|
|
||||||
create table pageview (
|
create table pageview (
|
||||||
view_id serial primary key,
|
view_id serial primary key,
|
||||||
session_id uuid references session(session_id) on delete cascade,
|
website_id int not null references website(website_id),
|
||||||
|
session_id int not null references session(session_id) on delete cascade,
|
||||||
created_at timestamp with time zone default current_timestamp,
|
created_at timestamp with time zone default current_timestamp,
|
||||||
url varchar(500) not null,
|
url varchar(500) not null,
|
||||||
referrer varchar(500)
|
referrer varchar(500)
|
||||||
@ -26,7 +29,8 @@ create table pageview (
|
|||||||
|
|
||||||
create table event (
|
create table event (
|
||||||
event_id serial primary key,
|
event_id serial primary key,
|
||||||
session_id uuid references session(session_id) on delete cascade,
|
website_id int not null references website(website_id),
|
||||||
|
session_id int not null references session(session_id) on delete cascade,
|
||||||
created_at timestamp with time zone default current_timestamp,
|
created_at timestamp with time zone default current_timestamp,
|
||||||
url varchar(500) not null,
|
url varchar(500) not null,
|
||||||
event_type varchar(50) not null,
|
event_type varchar(50) not null,
|
||||||
|
Loading…
Reference in New Issue
Block a user