mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 04:37:11 +01:00
Removed mysql schema.
This commit is contained in:
parent
94b4b66a3d
commit
ba2f74c6ca
16 changed files with 1974 additions and 632 deletions
1
.eslintignore
Normal file
1
.eslintignore
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/src/generated/
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
/public/script.js
|
/public/script.js
|
||||||
|
/src/generated/
|
||||||
|
|
|
||||||
|
|
@ -1,143 +0,0 @@
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `user` (
|
|
||||||
`user_id` VARCHAR(36) NOT NULL,
|
|
||||||
`username` VARCHAR(255) NOT NULL,
|
|
||||||
`password` VARCHAR(60) NOT NULL,
|
|
||||||
`role` VARCHAR(50) NOT NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
`updated_at` TIMESTAMP(0) NULL,
|
|
||||||
`deleted_at` TIMESTAMP(0) NULL,
|
|
||||||
|
|
||||||
UNIQUE INDEX `user_user_id_key`(`user_id`),
|
|
||||||
UNIQUE INDEX `user_username_key`(`username`),
|
|
||||||
PRIMARY KEY (`user_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `session` (
|
|
||||||
`session_id` VARCHAR(36) NOT NULL,
|
|
||||||
`website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`hostname` VARCHAR(100) NULL,
|
|
||||||
`browser` VARCHAR(20) NULL,
|
|
||||||
`os` VARCHAR(20) NULL,
|
|
||||||
`device` VARCHAR(20) NULL,
|
|
||||||
`screen` VARCHAR(11) NULL,
|
|
||||||
`language` VARCHAR(35) NULL,
|
|
||||||
`country` CHAR(2) NULL,
|
|
||||||
`subdivision1` CHAR(20) NULL,
|
|
||||||
`subdivision2` VARCHAR(50) NULL,
|
|
||||||
`city` VARCHAR(50) NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
|
|
||||||
UNIQUE INDEX `session_session_id_key`(`session_id`),
|
|
||||||
INDEX `session_created_at_idx`(`created_at`),
|
|
||||||
INDEX `session_website_id_idx`(`website_id`),
|
|
||||||
PRIMARY KEY (`session_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `website` (
|
|
||||||
`website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`name` VARCHAR(100) NOT NULL,
|
|
||||||
`domain` VARCHAR(500) NULL,
|
|
||||||
`share_id` VARCHAR(50) NULL,
|
|
||||||
`reset_at` TIMESTAMP(0) NULL,
|
|
||||||
`user_id` VARCHAR(36) NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
`updated_at` TIMESTAMP(0) NULL,
|
|
||||||
`deleted_at` TIMESTAMP(0) NULL,
|
|
||||||
|
|
||||||
UNIQUE INDEX `website_website_id_key`(`website_id`),
|
|
||||||
UNIQUE INDEX `website_share_id_key`(`share_id`),
|
|
||||||
INDEX `website_user_id_idx`(`user_id`),
|
|
||||||
INDEX `website_created_at_idx`(`created_at`),
|
|
||||||
INDEX `website_share_id_idx`(`share_id`),
|
|
||||||
PRIMARY KEY (`website_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `website_event` (
|
|
||||||
`event_id` VARCHAR(36) NOT NULL,
|
|
||||||
`website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`session_id` VARCHAR(36) NOT NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
`url_path` VARCHAR(500) NOT NULL,
|
|
||||||
`url_query` VARCHAR(500) NULL,
|
|
||||||
`referrer_path` VARCHAR(500) NULL,
|
|
||||||
`referrer_query` VARCHAR(500) NULL,
|
|
||||||
`referrer_domain` VARCHAR(500) NULL,
|
|
||||||
`page_title` VARCHAR(500) NULL,
|
|
||||||
`event_type` INTEGER UNSIGNED NOT NULL DEFAULT 1,
|
|
||||||
`event_name` VARCHAR(50) NULL,
|
|
||||||
|
|
||||||
INDEX `website_event_created_at_idx`(`created_at`),
|
|
||||||
INDEX `website_event_session_id_idx`(`session_id`),
|
|
||||||
INDEX `website_event_website_id_idx`(`website_id`),
|
|
||||||
INDEX `website_event_website_id_created_at_idx`(`website_id`, `created_at`),
|
|
||||||
INDEX `website_event_website_id_session_id_created_at_idx`(`website_id`, `session_id`, `created_at`),
|
|
||||||
PRIMARY KEY (`event_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `event_data` (
|
|
||||||
`event_id` VARCHAR(36) NOT NULL,
|
|
||||||
`website_event_id` VARCHAR(36) NOT NULL,
|
|
||||||
`website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`event_key` VARCHAR(500) NOT NULL,
|
|
||||||
`event_string_value` VARCHAR(500) NULL,
|
|
||||||
`event_numeric_value` DECIMAL(19, 4) NULL,
|
|
||||||
`event_date_value` TIMESTAMP(0) NULL,
|
|
||||||
`event_data_type` INTEGER UNSIGNED NOT NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
|
|
||||||
INDEX `event_data_created_at_idx`(`created_at`),
|
|
||||||
INDEX `event_data_website_id_idx`(`website_id`),
|
|
||||||
INDEX `event_data_website_event_id_idx`(`website_event_id`),
|
|
||||||
INDEX `event_data_website_id_website_event_id_created_at_idx`(`website_id`, `website_event_id`, `created_at`),
|
|
||||||
PRIMARY KEY (`event_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `team` (
|
|
||||||
`team_id` VARCHAR(36) NOT NULL,
|
|
||||||
`name` VARCHAR(50) NOT NULL,
|
|
||||||
`access_code` VARCHAR(50) NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
`updated_at` TIMESTAMP(0) NULL,
|
|
||||||
|
|
||||||
UNIQUE INDEX `team_team_id_key`(`team_id`),
|
|
||||||
UNIQUE INDEX `team_access_code_key`(`access_code`),
|
|
||||||
INDEX `team_access_code_idx`(`access_code`),
|
|
||||||
PRIMARY KEY (`team_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `team_user` (
|
|
||||||
`team_user_id` VARCHAR(36) NOT NULL,
|
|
||||||
`team_id` VARCHAR(36) NOT NULL,
|
|
||||||
`user_id` VARCHAR(36) NOT NULL,
|
|
||||||
`role` VARCHAR(50) NOT NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
`updated_at` TIMESTAMP(0) NULL,
|
|
||||||
|
|
||||||
UNIQUE INDEX `team_user_team_user_id_key`(`team_user_id`),
|
|
||||||
INDEX `team_user_team_id_idx`(`team_id`),
|
|
||||||
INDEX `team_user_user_id_idx`(`user_id`),
|
|
||||||
PRIMARY KEY (`team_user_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `team_website` (
|
|
||||||
`team_website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`team_id` VARCHAR(36) NOT NULL,
|
|
||||||
`website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
|
|
||||||
UNIQUE INDEX `team_website_team_website_id_key`(`team_website_id`),
|
|
||||||
INDEX `team_website_team_id_idx`(`team_id`),
|
|
||||||
INDEX `team_website_website_id_idx`(`website_id`),
|
|
||||||
PRIMARY KEY (`team_website_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- AddSystemUser
|
|
||||||
INSERT INTO user (user_id, username, role, password) VALUES ('41e2b680-648e-4b09-bcd7-3e2b10c06264' , 'admin', 'admin', '$2b$10$BUli0c.muyCW1ErNJc3jL.vFRFtFJWrT8/GcR4A.sUdCznaXiqFXa');
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `event_data` CHANGE `event_data_type` `data_type` INTEGER UNSIGNED NOT NULL;
|
|
||||||
ALTER TABLE `event_data` CHANGE `event_date_value` `date_value` TIMESTAMP(0) NULL;
|
|
||||||
ALTER TABLE `event_data` CHANGE `event_id` `event_data_id` VARCHAR(36) NOT NULL;
|
|
||||||
ALTER TABLE `event_data` CHANGE `event_numeric_value` `number_value` DECIMAL(19,4) NULL;
|
|
||||||
ALTER TABLE `event_data` CHANGE `event_string_value` `string_value` VARCHAR(500) NULL;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `session_data` (
|
|
||||||
`session_data_id` VARCHAR(36) NOT NULL,
|
|
||||||
`website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`session_id` VARCHAR(36) NOT NULL,
|
|
||||||
`event_key` VARCHAR(500) NOT NULL,
|
|
||||||
`string_value` VARCHAR(500) NULL,
|
|
||||||
`number_value` DECIMAL(19, 4) NULL,
|
|
||||||
`date_value` TIMESTAMP(0) NULL,
|
|
||||||
`data_type` INTEGER UNSIGNED NOT NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
|
|
||||||
INDEX `session_data_created_at_idx`(`created_at`),
|
|
||||||
INDEX `session_data_website_id_idx`(`website_id`),
|
|
||||||
INDEX `session_data_session_id_idx`(`session_id`),
|
|
||||||
PRIMARY KEY (`session_data_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE `report` (
|
|
||||||
`report_id` VARCHAR(36) NOT NULL,
|
|
||||||
`user_id` VARCHAR(36) NOT NULL,
|
|
||||||
`website_id` VARCHAR(36) NOT NULL,
|
|
||||||
`type` VARCHAR(200) NOT NULL,
|
|
||||||
`name` VARCHAR(200) NOT NULL,
|
|
||||||
`description` VARCHAR(500) NOT NULL,
|
|
||||||
`parameters` VARCHAR(6000) NOT NULL,
|
|
||||||
`created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
|
|
||||||
`updated_at` TIMESTAMP(0) NULL,
|
|
||||||
|
|
||||||
UNIQUE INDEX `report_report_id_key`(`report_id`),
|
|
||||||
INDEX `report_user_id_idx`(`user_id`),
|
|
||||||
INDEX `report_website_id_idx`(`website_id`),
|
|
||||||
INDEX `report_type_idx`(`type`),
|
|
||||||
INDEX `report_name_idx`(`name`),
|
|
||||||
PRIMARY KEY (`report_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- EventData migration
|
|
||||||
UPDATE event_data
|
|
||||||
SET string_value = number_value
|
|
||||||
WHERE data_type = 2;
|
|
||||||
|
|
||||||
UPDATE event_data
|
|
||||||
SET string_value = CONCAT(REPLACE(DATE_FORMAT(date_value, '%Y-%m-%d %T'), ' ', 'T'), 'Z')
|
|
||||||
WHERE data_type = 4;
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `event_data_website_id_created_at_idx` ON `event_data`(`website_id`, `created_at`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `event_data_website_id_created_at_event_key_idx` ON `event_data`(`website_id`, `created_at`, `event_key`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_idx` ON `session`(`website_id`, `created_at`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_hostname_idx` ON `session`(`website_id`, `created_at`, `hostname`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_browser_idx` ON `session`(`website_id`, `created_at`, `browser`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_os_idx` ON `session`(`website_id`, `created_at`, `os`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_device_idx` ON `session`(`website_id`, `created_at`, `device`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_screen_idx` ON `session`(`website_id`, `created_at`, `screen`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_language_idx` ON `session`(`website_id`, `created_at`, `language`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_country_idx` ON `session`(`website_id`, `created_at`, `country`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_subdivision1_idx` ON `session`(`website_id`, `created_at`, `subdivision1`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_website_id_created_at_city_idx` ON `session`(`website_id`, `created_at`, `city`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_created_at_url_path_idx` ON `website_event`(`website_id`, `created_at`, `url_path`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_created_at_url_query_idx` ON `website_event`(`website_id`, `created_at`, `url_query`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_created_at_referrer_domain_idx` ON `website_event`(`website_id`, `created_at`, `referrer_domain`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_created_at_page_title_idx` ON `website_event`(`website_id`, `created_at`, `page_title`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_created_at_event_name_idx` ON `website_event`(`website_id`, `created_at`, `event_name`);
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
/*
|
|
||||||
Warnings:
|
|
||||||
|
|
||||||
- You are about to drop the `team_website` table. If the table is not empty, all the data it contains will be lost.
|
|
||||||
|
|
||||||
*/
|
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `team` ADD COLUMN `deleted_at` TIMESTAMP(0) NULL,
|
|
||||||
ADD COLUMN `logo_url` VARCHAR(2183) NULL;
|
|
||||||
|
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `user` ADD COLUMN `display_name` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `logo_url` VARCHAR(2183) NULL;
|
|
||||||
|
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `website` ADD COLUMN `created_by` VARCHAR(36) NULL,
|
|
||||||
ADD COLUMN `team_id` VARCHAR(36) NULL;
|
|
||||||
|
|
||||||
-- MigrateData
|
|
||||||
UPDATE `website` SET created_by = user_id WHERE team_id IS NULL;
|
|
||||||
|
|
||||||
-- DropTable
|
|
||||||
DROP TABLE `team_website`;
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_team_id_idx` ON `website`(`team_id`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_created_by_idx` ON `website`(`created_by`);
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `website_event` ADD COLUMN `visit_id` VARCHAR(36) NULL;
|
|
||||||
|
|
||||||
UPDATE `website_event` we
|
|
||||||
JOIN (SELECT DISTINCT
|
|
||||||
s.session_id,
|
|
||||||
s.visit_time,
|
|
||||||
BIN_TO_UUID(RANDOM_BYTES(16) & 0xffffffffffff0fff3fffffffffffffff | 0x00000000000040008000000000000000) uuid
|
|
||||||
FROM (SELECT DISTINCT session_id,
|
|
||||||
DATE_FORMAT(created_at, '%Y-%m-%d %H:00:00') visit_time
|
|
||||||
FROM `website_event`) s) a
|
|
||||||
ON we.session_id = a.session_id and DATE_FORMAT(we.created_at, '%Y-%m-%d %H:00:00') = a.visit_time
|
|
||||||
SET we.visit_id = a.uuid
|
|
||||||
WHERE we.visit_id IS NULL;
|
|
||||||
|
|
||||||
ALTER TABLE `website_event` MODIFY `visit_id` VARCHAR(36) NOT NULL;
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_visit_id_idx` ON `website_event`(`visit_id`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_visit_id_created_at_idx` ON `website_event`(`website_id`, `visit_id`, `created_at`);
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
-- DropIndex
|
|
||||||
DROP INDEX `event_data_website_id_created_at_event_key_idx` ON `event_data`;
|
|
||||||
|
|
||||||
-- DropIndex
|
|
||||||
DROP INDEX `event_data_website_id_website_event_id_created_at_idx` ON `event_data`;
|
|
||||||
|
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `event_data` RENAME COLUMN `event_key` TO `data_key`;
|
|
||||||
|
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `session_data` RENAME COLUMN `event_key` TO `data_key`;
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `event_data_website_id_created_at_data_key_idx` ON `event_data`(`website_id`, `created_at`, `data_key`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_data_session_id_created_at_idx` ON `session_data`(`session_id`, `created_at`);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `session_data_website_id_created_at_data_key_idx` ON `session_data`(`website_id`, `created_at`, `data_key`);
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `website_event` ADD COLUMN `tag` VARCHAR(50) NULL;
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_created_at_tag_idx` ON `website_event`(`website_id`, `created_at`, `tag`);
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `website_event`
|
|
||||||
ADD COLUMN `fbclid` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `gclid` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `li_fat_id` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `msclkid` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `ttclid` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `twclid` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `utm_campaign` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `utm_content` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `utm_medium` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `utm_source` VARCHAR(255) NULL,
|
|
||||||
ADD COLUMN `utm_term` VARCHAR(255) NULL;
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `website_event` ADD COLUMN `hostname` VARCHAR(100) NULL;
|
|
||||||
|
|
||||||
-- DataMigration
|
|
||||||
UPDATE `website_event` w
|
|
||||||
JOIN `session` s
|
|
||||||
ON s.website_id = w.website_id
|
|
||||||
and s.session_id = w.session_id
|
|
||||||
SET w.hostname = s.hostname;
|
|
||||||
|
|
||||||
-- DropIndex
|
|
||||||
DROP INDEX `session_website_id_created_at_hostname_idx` ON `session`;
|
|
||||||
DROP INDEX `session_website_id_created_at_subdivision1_idx` ON `session`;
|
|
||||||
|
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `session` RENAME COLUMN `subdivision1` TO `region`;
|
|
||||||
ALTER TABLE `session` DROP COLUMN `subdivision2`;
|
|
||||||
ALTER TABLE `session` DROP COLUMN `hostname`;
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX `website_event_website_id_created_at_hostname_idx` ON `website_event`(`website_id`, `created_at`, `hostname`);
|
|
||||||
CREATE INDEX `session_website_id_created_at_region_idx` ON `session`(`website_id`, `created_at`, `region`);
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `session` ADD COLUMN `distinct_id` VARCHAR(50) NULL;
|
|
||||||
|
|
||||||
-- AlterTable
|
|
||||||
ALTER TABLE `session_data` ADD COLUMN `distinct_id` VARCHAR(50) NULL;
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
# Please do not edit this file manually
|
|
||||||
# It should be added in your version-control system (e.g., Git)
|
|
||||||
provider = "mysql"
|
|
||||||
|
|
@ -1,237 +0,0 @@
|
||||||
generator client {
|
|
||||||
provider = "prisma-client"
|
|
||||||
output = "../src/generated/prisma"
|
|
||||||
moduleFormat = "esm"
|
|
||||||
generatedFileExtension = "ts"
|
|
||||||
importFileExtension = "ts"
|
|
||||||
}
|
|
||||||
|
|
||||||
datasource db {
|
|
||||||
provider = "mysql"
|
|
||||||
url = env("DATABASE_URL")
|
|
||||||
relationMode = "prisma"
|
|
||||||
}
|
|
||||||
|
|
||||||
model User {
|
|
||||||
id String @id @unique @map("user_id") @db.VarChar(36)
|
|
||||||
username String @unique @db.VarChar(255)
|
|
||||||
password String @db.VarChar(60)
|
|
||||||
role String @map("role") @db.VarChar(50)
|
|
||||||
logoUrl String? @map("logo_url") @db.VarChar(2183)
|
|
||||||
displayName String? @map("display_name") @db.VarChar(255)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0)
|
|
||||||
deletedAt DateTime? @map("deleted_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
websiteUser Website[] @relation("user")
|
|
||||||
websiteCreateUser Website[] @relation("createUser")
|
|
||||||
teamUser TeamUser[]
|
|
||||||
report Report[]
|
|
||||||
|
|
||||||
@@map("user")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Session {
|
|
||||||
id String @id @unique @map("session_id") @db.VarChar(36)
|
|
||||||
websiteId String @map("website_id") @db.VarChar(36)
|
|
||||||
browser String? @db.VarChar(20)
|
|
||||||
os String? @db.VarChar(20)
|
|
||||||
device String? @db.VarChar(20)
|
|
||||||
screen String? @db.VarChar(11)
|
|
||||||
language String? @db.VarChar(35)
|
|
||||||
country String? @db.Char(2)
|
|
||||||
region String? @db.Char(20)
|
|
||||||
city String? @db.VarChar(50)
|
|
||||||
distinctId String? @map("distinct_id") @db.VarChar(50)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
websiteEvent WebsiteEvent[]
|
|
||||||
sessionData SessionData[]
|
|
||||||
|
|
||||||
@@index([createdAt])
|
|
||||||
@@index([websiteId])
|
|
||||||
@@index([websiteId, createdAt])
|
|
||||||
@@index([websiteId, createdAt, browser])
|
|
||||||
@@index([websiteId, createdAt, os])
|
|
||||||
@@index([websiteId, createdAt, device])
|
|
||||||
@@index([websiteId, createdAt, screen])
|
|
||||||
@@index([websiteId, createdAt, language])
|
|
||||||
@@index([websiteId, createdAt, country])
|
|
||||||
@@index([websiteId, createdAt, region])
|
|
||||||
@@index([websiteId, createdAt, city])
|
|
||||||
@@map("session")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Website {
|
|
||||||
id String @id @unique @map("website_id") @db.VarChar(36)
|
|
||||||
name String @db.VarChar(100)
|
|
||||||
domain String? @db.VarChar(500)
|
|
||||||
shareId String? @unique @map("share_id") @db.VarChar(50)
|
|
||||||
resetAt DateTime? @map("reset_at") @db.Timestamp(0)
|
|
||||||
userId String? @map("user_id") @db.VarChar(36)
|
|
||||||
teamId String? @map("team_id") @db.VarChar(36)
|
|
||||||
createdBy String? @map("created_by") @db.VarChar(36)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0)
|
|
||||||
deletedAt DateTime? @map("deleted_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
user User? @relation("user", fields: [userId], references: [id])
|
|
||||||
createUser User? @relation("createUser", fields: [createdBy], references: [id])
|
|
||||||
team Team? @relation(fields: [teamId], references: [id])
|
|
||||||
eventData EventData[]
|
|
||||||
report Report[]
|
|
||||||
sessionData SessionData[]
|
|
||||||
|
|
||||||
@@index([userId])
|
|
||||||
@@index([teamId])
|
|
||||||
@@index([createdAt])
|
|
||||||
@@index([shareId])
|
|
||||||
@@index([createdBy])
|
|
||||||
@@map("website")
|
|
||||||
}
|
|
||||||
|
|
||||||
model WebsiteEvent {
|
|
||||||
id String @id() @map("event_id") @db.VarChar(36)
|
|
||||||
websiteId String @map("website_id") @db.VarChar(36)
|
|
||||||
sessionId String @map("session_id") @db.VarChar(36)
|
|
||||||
visitId String @map("visit_id") @db.VarChar(36)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
urlPath String @map("url_path") @db.VarChar(500)
|
|
||||||
urlQuery String? @map("url_query") @db.VarChar(500)
|
|
||||||
utmSource String? @map("utm_source") @db.VarChar(255)
|
|
||||||
utmMedium String? @map("utm_medium") @db.VarChar(255)
|
|
||||||
utmCampaign String? @map("utm_campaign") @db.VarChar(255)
|
|
||||||
utmContent String? @map("utm_content") @db.VarChar(255)
|
|
||||||
utmTerm String? @map("utm_term") @db.VarChar(255)
|
|
||||||
referrerPath String? @map("referrer_path") @db.VarChar(500)
|
|
||||||
referrerQuery String? @map("referrer_query") @db.VarChar(500)
|
|
||||||
referrerDomain String? @map("referrer_domain") @db.VarChar(500)
|
|
||||||
pageTitle String? @map("page_title") @db.VarChar(500)
|
|
||||||
gclid String? @map("gclid") @db.VarChar(255)
|
|
||||||
fbclid String? @map("fbclid") @db.VarChar(255)
|
|
||||||
msclkid String? @map("msclkid") @db.VarChar(255)
|
|
||||||
ttclid String? @map("ttclid") @db.VarChar(255)
|
|
||||||
lifatid String? @map("li_fat_id") @db.VarChar(255)
|
|
||||||
twclid String? @map("twclid") @db.VarChar(255)
|
|
||||||
eventType Int @default(1) @map("event_type") @db.UnsignedInt
|
|
||||||
eventName String? @map("event_name") @db.VarChar(50)
|
|
||||||
tag String? @db.VarChar(50)
|
|
||||||
hostname String? @db.VarChar(100)
|
|
||||||
|
|
||||||
eventData EventData[]
|
|
||||||
session Session @relation(fields: [sessionId], references: [id])
|
|
||||||
|
|
||||||
@@index([createdAt])
|
|
||||||
@@index([sessionId])
|
|
||||||
@@index([visitId])
|
|
||||||
@@index([websiteId])
|
|
||||||
@@index([websiteId, createdAt])
|
|
||||||
@@index([websiteId, createdAt, urlPath])
|
|
||||||
@@index([websiteId, createdAt, urlQuery])
|
|
||||||
@@index([websiteId, createdAt, referrerDomain])
|
|
||||||
@@index([websiteId, createdAt, pageTitle])
|
|
||||||
@@index([websiteId, createdAt, eventName])
|
|
||||||
@@index([websiteId, createdAt, tag])
|
|
||||||
@@index([websiteId, sessionId, createdAt])
|
|
||||||
@@index([websiteId, visitId, createdAt])
|
|
||||||
@@index([websiteId, createdAt, hostname])
|
|
||||||
@@map("website_event")
|
|
||||||
}
|
|
||||||
|
|
||||||
model EventData {
|
|
||||||
id String @id() @map("event_data_id") @db.VarChar(36)
|
|
||||||
websiteId String @map("website_id") @db.VarChar(36)
|
|
||||||
websiteEventId String @map("website_event_id") @db.VarChar(36)
|
|
||||||
dataKey String @map("data_key") @db.VarChar(500)
|
|
||||||
stringValue String? @map("string_value") @db.VarChar(500)
|
|
||||||
numberValue Decimal? @map("number_value") @db.Decimal(19, 4)
|
|
||||||
dateValue DateTime? @map("date_value") @db.Timestamp(0)
|
|
||||||
dataType Int @map("data_type") @db.UnsignedInt
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
website Website @relation(fields: [websiteId], references: [id])
|
|
||||||
websiteEvent WebsiteEvent @relation(fields: [websiteEventId], references: [id])
|
|
||||||
|
|
||||||
@@index([createdAt])
|
|
||||||
@@index([websiteId])
|
|
||||||
@@index([websiteEventId])
|
|
||||||
@@index([websiteId, createdAt])
|
|
||||||
@@index([websiteId, createdAt, dataKey])
|
|
||||||
@@map("event_data")
|
|
||||||
}
|
|
||||||
|
|
||||||
model SessionData {
|
|
||||||
id String @id() @map("session_data_id") @db.VarChar(36)
|
|
||||||
websiteId String @map("website_id") @db.VarChar(36)
|
|
||||||
sessionId String @map("session_id") @db.VarChar(36)
|
|
||||||
dataKey String @map("data_key") @db.VarChar(500)
|
|
||||||
stringValue String? @map("string_value") @db.VarChar(500)
|
|
||||||
numberValue Decimal? @map("number_value") @db.Decimal(19, 4)
|
|
||||||
dateValue DateTime? @map("date_value") @db.Timestamp(0)
|
|
||||||
dataType Int @map("data_type") @db.UnsignedInt
|
|
||||||
distinctId String? @map("distinct_id") @db.VarChar(50)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
website Website @relation(fields: [websiteId], references: [id])
|
|
||||||
session Session @relation(fields: [sessionId], references: [id])
|
|
||||||
|
|
||||||
@@index([createdAt])
|
|
||||||
@@index([websiteId])
|
|
||||||
@@index([sessionId])
|
|
||||||
@@index([sessionId, createdAt])
|
|
||||||
@@index([websiteId, createdAt, dataKey])
|
|
||||||
@@map("session_data")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Team {
|
|
||||||
id String @id() @unique() @map("team_id") @db.VarChar(36)
|
|
||||||
name String @db.VarChar(50)
|
|
||||||
accessCode String? @unique @map("access_code") @db.VarChar(50)
|
|
||||||
logoUrl String? @map("logo_url") @db.VarChar(2183)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0)
|
|
||||||
deletedAt DateTime? @map("deleted_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
website Website[]
|
|
||||||
teamUser TeamUser[]
|
|
||||||
|
|
||||||
@@index([accessCode])
|
|
||||||
@@map("team")
|
|
||||||
}
|
|
||||||
|
|
||||||
model TeamUser {
|
|
||||||
id String @id() @unique() @map("team_user_id") @db.VarChar(36)
|
|
||||||
teamId String @map("team_id") @db.VarChar(36)
|
|
||||||
userId String @map("user_id") @db.VarChar(36)
|
|
||||||
role String @map("role") @db.VarChar(50)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
team Team @relation(fields: [teamId], references: [id])
|
|
||||||
user User @relation(fields: [userId], references: [id])
|
|
||||||
|
|
||||||
@@index([teamId])
|
|
||||||
@@index([userId])
|
|
||||||
@@map("team_user")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Report {
|
|
||||||
id String @id() @unique() @map("report_id") @db.VarChar(36)
|
|
||||||
userId String @map("user_id") @db.VarChar(36)
|
|
||||||
websiteId String @map("website_id") @db.VarChar(36)
|
|
||||||
type String @map("type") @db.VarChar(200)
|
|
||||||
name String @map("name") @db.VarChar(200)
|
|
||||||
description String @map("description") @db.VarChar(500)
|
|
||||||
parameters String @map("parameters") @db.VarChar(6000)
|
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0)
|
|
||||||
updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0)
|
|
||||||
|
|
||||||
user User @relation(fields: [userId], references: [id])
|
|
||||||
website Website @relation(fields: [websiteId], references: [id])
|
|
||||||
|
|
||||||
@@index([userId])
|
|
||||||
@@index([websiteId])
|
|
||||||
@@index([type])
|
|
||||||
@@index([name])
|
|
||||||
@@map("report")
|
|
||||||
}
|
|
||||||
|
|
@ -75,8 +75,10 @@
|
||||||
"@prisma/client": "6.7.0",
|
"@prisma/client": "6.7.0",
|
||||||
"@prisma/extension-read-replicas": "^0.4.1",
|
"@prisma/extension-read-replicas": "^0.4.1",
|
||||||
"@react-spring/web": "^9.7.3",
|
"@react-spring/web": "^9.7.3",
|
||||||
|
"@svgr/cli": "^8.1.0",
|
||||||
"@tanstack/react-query": "^5.28.6",
|
"@tanstack/react-query": "^5.28.6",
|
||||||
"@umami/redis-client": "^0.26.0",
|
"@umami/react-zen": "^0.97.0",
|
||||||
|
"@umami/redis-client": "^0.27.0",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"chart.js": "^4.4.9",
|
"chart.js": "^4.4.9",
|
||||||
|
|
@ -101,6 +103,7 @@
|
||||||
"isbot": "^5.1.16",
|
"isbot": "^5.1.16",
|
||||||
"jsonwebtoken": "^9.0.2",
|
"jsonwebtoken": "^9.0.2",
|
||||||
"kafkajs": "^2.1.0",
|
"kafkajs": "^2.1.0",
|
||||||
|
"lucide-react": "^0.509.0",
|
||||||
"maxmind": "^4.3.24",
|
"maxmind": "^4.3.24",
|
||||||
"md5": "^2.3.0",
|
"md5": "^2.3.0",
|
||||||
"next": "15.3.1",
|
"next": "15.3.1",
|
||||||
|
|
|
||||||
1995
pnpm-lock.yaml
generated
1995
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue