From 19166e580ec2854b07d4cac0ec2d121cdf70041d Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Thu, 5 Jan 2023 14:40:34 -0800 Subject: [PATCH] add mysql schema file --- db/mysql/migrations/01_init/migration.sql | 140 +++++++++--------- .../02_add_event_data/migration.sql | 90 ----------- .../03_remove_cascade_delete/migration.sql | 35 ----- db/mysql/migrations/04_add_uuid/migration.sql | 35 ----- db/mysql/schema.prisma | 62 ++++---- db/mysql/schema_old.prisma | 116 --------------- 6 files changed, 104 insertions(+), 374 deletions(-) delete mode 100644 db/mysql/migrations/02_add_event_data/migration.sql delete mode 100644 db/mysql/migrations/03_remove_cascade_delete/migration.sql delete mode 100644 db/mysql/migrations/04_add_uuid/migration.sql delete mode 100644 db/mysql/schema_old.prisma diff --git a/db/mysql/migrations/01_init/migration.sql b/db/mysql/migrations/01_init/migration.sql index 0ae7775a..e549ffec 100644 --- a/db/mysql/migrations/01_init/migration.sql +++ b/db/mysql/migrations/01_init/migration.sql @@ -1,55 +1,22 @@ -- CreateTable -CREATE TABLE `account` ( - `user_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, +CREATE TABLE `user` ( + `user_id` VARCHAR(36) NOT NULL, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(60) NOT NULL, - `is_admin` BOOLEAN NOT NULL DEFAULT false, + `role` VARCHAR(50) NOT NULL, `created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), - `updated_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NULL, + `deleted_at` TIMESTAMP(0) NULL, - UNIQUE INDEX `username`(`username`), + 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 `event` ( - `event_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, - `website_id` INTEGER UNSIGNED NOT NULL, - `session_id` INTEGER UNSIGNED NOT NULL, - `created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), - `url` VARCHAR(500) NOT NULL, - `event_type` VARCHAR(50) NOT NULL, - `event_value` VARCHAR(50) NOT NULL, - - INDEX `event_created_at_idx`(`created_at`), - INDEX `event_session_id_idx`(`session_id`), - INDEX `event_website_id_idx`(`website_id`), - PRIMARY KEY (`event_id`) -) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `pageview` ( - `view_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, - `website_id` INTEGER UNSIGNED NOT NULL, - `session_id` INTEGER UNSIGNED NOT NULL, - `created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), - `url` VARCHAR(500) NOT NULL, - `referrer` VARCHAR(500) NULL, - - INDEX `pageview_created_at_idx`(`created_at`), - INDEX `pageview_session_id_idx`(`session_id`), - INDEX `pageview_website_id_created_at_idx`(`website_id`, `created_at`), - INDEX `pageview_website_id_idx`(`website_id`), - INDEX `pageview_website_id_session_id_created_at_idx`(`website_id`, `session_id`, `created_at`), - PRIMARY KEY (`view_id`) -) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `session` ( - `session_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, - `session_uuid` VARCHAR(36) NOT NULL, - `website_id` INTEGER UNSIGNED NOT NULL, - `created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), + `session_id` VARCHAR(36) NOT NULL, + `website_id` VARCHAR(36) NOT NULL, `hostname` VARCHAR(100) NULL, `browser` VARCHAR(20) NULL, `os` VARCHAR(20) NULL, @@ -57,46 +24,85 @@ CREATE TABLE `session` ( `screen` VARCHAR(11) NULL, `language` VARCHAR(35) NULL, `country` CHAR(2) NULL, + `created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), - UNIQUE INDEX `session_uuid`(`session_uuid`), + 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; +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `website` ( - `website_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, - `website_uuid` VARCHAR(36) NOT NULL, - `user_id` INTEGER UNSIGNED NOT NULL, + `website_id` VARCHAR(36) NOT NULL, `name` VARCHAR(100) NOT NULL, `domain` VARCHAR(500) NULL, - `share_id` VARCHAR(64) NULL, + `share_id` VARCHAR(50) NULL, + `rev_id` INTEGER UNSIGNED NOT NULL DEFAULT 0, + `user_id` VARCHAR(36) NULL, + `team_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_uuid`(`website_uuid`), - UNIQUE INDEX `share_id`(`share_id`), + UNIQUE INDEX `website_website_id_key`(`website_id`), + UNIQUE INDEX `website_share_id_key`(`share_id`), + INDEX `website_team_id_idx`(`team_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; +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; --- AddForeignKey -ALTER TABLE `event` ADD CONSTRAINT `event_ibfk_2` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE CASCADE ON UPDATE NO ACTION; +-- 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` VARCHAR(500) NOT NULL, + `referrer` VARCHAR(500) NULL, + `event_type` INTEGER UNSIGNED NOT NULL DEFAULT 1, + `event_name` VARCHAR(50) NULL, + `event_data` JSON NULL, --- AddForeignKey -ALTER TABLE `event` ADD CONSTRAINT `event_ibfk_1` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE CASCADE ON UPDATE NO ACTION; + 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`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; --- AddForeignKey -ALTER TABLE `pageview` ADD CONSTRAINT `pageview_ibfk_2` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE CASCADE ON UPDATE NO ACTION; +-- CreateTable +CREATE TABLE `team` ( + `team_id` VARCHAR(36) NOT NULL, + `name` VARCHAR(50) NOT NULL, + `user_id` VARCHAR(36) NOT NULL, + `access_code` VARCHAR(50) NULL, + `created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), + `updated_at` TIMESTAMP(0) NULL, + `deleted_at` TIMESTAMP(0) NULL, --- AddForeignKey -ALTER TABLE `pageview` ADD CONSTRAINT `pageview_ibfk_1` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE CASCADE ON UPDATE NO ACTION; + UNIQUE INDEX `team_team_id_key`(`team_id`), + UNIQUE INDEX `team_access_code_key`(`access_code`), + INDEX `team_user_id_idx`(`user_id`), + INDEX `team_access_code_idx`(`access_code`), + PRIMARY KEY (`team_id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; --- AddForeignKey -ALTER TABLE `session` ADD CONSTRAINT `session_ibfk_1` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE CASCADE ON UPDATE NO ACTION; +-- 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, + `deleted_at` TIMESTAMP(0) NULL, --- AddForeignKey -ALTER TABLE `website` ADD CONSTRAINT `website_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `account`(`user_id`) ON DELETE CASCADE ON UPDATE NO ACTION; - --- CreateAdminUser -INSERT INTO account (username, password, is_admin) values ('admin', '$2b$10$BUli0c.muyCW1ErNJc3jL.vFRFtFJWrT8/GcR4A.sUdCznaXiqFXa', true); + 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`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/db/mysql/migrations/02_add_event_data/migration.sql b/db/mysql/migrations/02_add_event_data/migration.sql deleted file mode 100644 index b781984c..00000000 --- a/db/mysql/migrations/02_add_event_data/migration.sql +++ /dev/null @@ -1,90 +0,0 @@ --- DropForeignKey -ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_1`; -ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_2`; - -DROP INDEX `event_created_at_idx` ON `event`; -DROP INDEX `event_session_id_idx` ON `event`; -DROP INDEX `event_website_id_idx` ON `event`; - -CREATE INDEX `event_old_created_at_idx` ON `event` (created_at); -CREATE INDEX `event_old_session_id_idx` ON `event` (session_id); -CREATE INDEX `event_old_website_id_idx` ON `event` (website_id); - --- RenameTable -RENAME TABLE `event` TO `_event_old`; - --- CreateTable -CREATE TABLE `event` -( - `event_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, - `website_id` INTEGER UNSIGNED NOT NULL, - `session_id` INTEGER UNSIGNED NOT NULL, - `created_at` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), - `url` VARCHAR(500) NOT NULL, - `event_name` VARCHAR(50) NOT NULL, - - INDEX `event_created_at_idx`(`created_at`), - INDEX `event_session_id_idx`(`session_id`), - INDEX `event_website_id_idx`(`website_id`), - PRIMARY KEY (`event_id`) -) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- AddForeignKey -ALTER TABLE `event` ADD CONSTRAINT `event_ibfk_2` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE CASCADE ON UPDATE NO ACTION; - --- AddForeignKey -ALTER TABLE `event` ADD CONSTRAINT `event_ibfk_1` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE CASCADE ON UPDATE NO ACTION; - - --- CreateTable -CREATE TABLE `event_data` ( - `event_data_id` INTEGER NOT NULL AUTO_INCREMENT, - `event_id` INTEGER UNSIGNED NOT NULL, - `event_data` JSON NOT NULL, - - UNIQUE INDEX `event_data_event_id_key`(`event_id`), - PRIMARY KEY (`event_data_id`) -) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- AddForeignKey -ALTER TABLE `event_data` ADD CONSTRAINT `event_data_event_id_fkey` FOREIGN KEY (`event_id`) REFERENCES `event`(`event_id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- CreateProcedureRenameIndex -CREATE PROCEDURE `UmamiRenameIndexIfExists`( - IN i_table_name VARCHAR(128), - IN i_current_index_name VARCHAR(128), - IN i_new_index_name VARCHAR(128) - ) - BEGIN - - SET @tableName = i_table_name; - SET @currentIndexName = i_current_index_name; - SET @newIndexName = i_new_index_name; - SET @indexExists = 0; - - SELECT - 1 - INTO @indexExists FROM - INFORMATION_SCHEMA.STATISTICS - WHERE - TABLE_NAME = @tableName - AND INDEX_NAME = @currentIndexName; - - SET @query = CONCAT( - 'ALTER TABLE `', @tableName, '` RENAME INDEX `', @currentIndexName, '` TO `', @newIndexName, '`;' - ); - IF @indexExists THEN - PREPARE stmt FROM @query; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - END IF; -END; - --- RenameIndex -CALL UmamiRenameIndexIfExists('account', 'username', 'account_username_key'); -CALL UmamiRenameIndexIfExists('session', 'session_uuid', 'session_session_uuid_key'); -CALL UmamiRenameIndexIfExists('website', 'share_id', 'website_share_id_key'); -CALL UmamiRenameIndexIfExists('website', 'website_uuid', 'website_website_uuid_key'); - --- Drop CreateProcedureRenameIndex -drop procedure `UmamiRenameIndexIfExists`; \ No newline at end of file diff --git a/db/mysql/migrations/03_remove_cascade_delete/migration.sql b/db/mysql/migrations/03_remove_cascade_delete/migration.sql deleted file mode 100644 index 542784a9..00000000 --- a/db/mysql/migrations/03_remove_cascade_delete/migration.sql +++ /dev/null @@ -1,35 +0,0 @@ --- DropForeignKey -ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_2`; - --- DropForeignKey -ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_1`; - --- DropForeignKey -ALTER TABLE `pageview` DROP FOREIGN KEY `pageview_ibfk_2`; - --- DropForeignKey -ALTER TABLE `pageview` DROP FOREIGN KEY `pageview_ibfk_1`; - --- DropForeignKey -ALTER TABLE `session` DROP FOREIGN KEY `session_ibfk_1`; - --- DropForeignKey -ALTER TABLE `website` DROP FOREIGN KEY `website_ibfk_1`; - --- AddForeignKey -ALTER TABLE `event` ADD CONSTRAINT `event_session_id_fkey` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `event` ADD CONSTRAINT `event_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `pageview` ADD CONSTRAINT `pageview_session_id_fkey` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `pageview` ADD CONSTRAINT `pageview_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `session` ADD CONSTRAINT `session_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE `website` ADD CONSTRAINT `website_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `account`(`user_id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/mysql/migrations/04_add_uuid/migration.sql b/db/mysql/migrations/04_add_uuid/migration.sql deleted file mode 100644 index 137ee2e3..00000000 --- a/db/mysql/migrations/04_add_uuid/migration.sql +++ /dev/null @@ -1,35 +0,0 @@ --- AlterTable -ALTER TABLE `account` ADD COLUMN `account_uuid` VARCHAR(36); - --- Backfill UUID -UPDATE `account` SET account_uuid=(SELECT uuid()); - --- AlterTable -ALTER TABLE `account` MODIFY `account_uuid` VARCHAR(36) NOT NULL; - --- CreateIndex -CREATE UNIQUE INDEX `account_account_uuid_key` ON `account`(`account_uuid`); - --- AlterTable -ALTER TABLE `event` ADD COLUMN `event_uuid` VARCHAR(36); - --- Backfill UUID -UPDATE `event` SET event_uuid=(SELECT uuid()); - --- AlterTable -ALTER TABLE `event` MODIFY `event_uuid` VARCHAR(36) NOT NULL; - --- CreateIndex -CREATE UNIQUE INDEX `event_event_uuid_key` ON `event`(`event_uuid`); - --- CreateIndex -CREATE INDEX `account_account_uuid_idx` ON `account`(`account_uuid`); - --- CreateIndex -CREATE INDEX `session_session_uuid_idx` ON `session`(`session_uuid`); - --- CreateIndex -CREATE INDEX `website_website_uuid_idx` ON `website`(`website_uuid`); - --- CreateIndex -CREATE INDEX `event_event_uuid_idx` ON `event`(`event_uuid`); \ No newline at end of file diff --git a/db/mysql/schema.prisma b/db/mysql/schema.prisma index 7e4e20d1..ba035ab5 100644 --- a/db/mysql/schema.prisma +++ b/db/mysql/schema.prisma @@ -3,19 +3,19 @@ generator client { } datasource db { - provider = "postgresql" + provider = "mysql" url = env("DATABASE_URL") relationMode = "prisma" } model User { - id String @id @unique @map("user_id") @db.Uuid + 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) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(6) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(6) + createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + deletedAt DateTime? @map("deleted_at") @db.Timestamp(0) teamUser TeamUser[] Website Website[] @@ -24,8 +24,8 @@ model User { } model Session { - id String @id @unique @map("session_id") @db.Uuid - websiteId String @map("website_id") @db.Uuid + id String @id @unique @map("session_id") @db.VarChar(36) + websiteId String @map("website_id") @db.VarChar(36) hostname String? @db.VarChar(100) browser String? @db.VarChar(20) os String? @db.VarChar(20) @@ -33,7 +33,7 @@ model Session { screen String? @db.VarChar(11) language String? @db.VarChar(35) country String? @db.Char(2) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) + createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) @@index([createdAt]) @@index([websiteId]) @@ -41,16 +41,16 @@ model Session { } model Website { - id String @id @unique @map("website_id") @db.Uuid + 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) - revId Int @default(0) @map("rev_id") @db.Integer - userId String? @map("user_id") @db.Uuid - teamId String? @map("team_id") @db.Uuid - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(6) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(6) + revId Int @default(0) @map("rev_id") @db.UnsignedInt + userId String? @map("user_id") @db.VarChar(36) + teamId String? @map("team_id") @db.VarChar(36) + createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + deletedAt DateTime? @map("deleted_at") @db.Timestamp(0) team Team? @relation(fields: [teamId], references: [id]) user User? @relation(fields: [userId], references: [id]) @@ -63,13 +63,13 @@ model Website { } model WebsiteEvent { - id String @id() @map("event_id") @db.Uuid - websiteId String @map("website_id") @db.Uuid - sessionId String @map("session_id") @db.Uuid - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) + 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) + createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) url String @db.VarChar(500) referrer String? @db.VarChar(500) - eventType Int @default(1) @map("event_type") @db.Integer + eventType Int @default(1) @map("event_type") @db.UnsignedInt eventName String? @map("event_name") @db.VarChar(50) eventData Json? @map("event_data") @@ -82,13 +82,13 @@ model WebsiteEvent { } model Team { - id String @id() @unique() @map("team_id") @db.Uuid + id String @id() @unique() @map("team_id") @db.VarChar(36) name String @db.VarChar(50) - userId String @map("user_id") @db.Uuid + userId String @map("user_id") @db.VarChar(36) accessCode String? @unique @map("access_code") @db.VarChar(50) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(6) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(6) + createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + deletedAt DateTime? @map("deleted_at") @db.Timestamp(0) teamUsers TeamUser[] Website Website[] @@ -99,13 +99,13 @@ model Team { } model TeamUser { - id String @id() @unique() @map("team_user_id") @db.Uuid - teamId String @map("team_id") @db.Uuid - userId String @map("user_id") @db.Uuid + 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.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(6) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(6) + createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + deletedAt DateTime? @map("deleted_at") @db.Timestamp(0) team Team @relation(fields: [teamId], references: [id]) user User @relation(fields: [userId], references: [id]) diff --git a/db/mysql/schema_old.prisma b/db/mysql/schema_old.prisma deleted file mode 100644 index 57f09e30..00000000 --- a/db/mysql/schema_old.prisma +++ /dev/null @@ -1,116 +0,0 @@ -generator client { - provider = "prisma-client-js" -} - -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) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(0) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(0) - - teamUser TeamUser[] - Website Website[] - - @@map("user") -} - -model Session { - id String @id @unique @map("session_id") @db.VarChar(36) - websiteId String @map("website_id") @db.VarChar(36) - hostname String? @db.VarChar(100) - 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) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(0) - - @@index([createdAt]) - @@index([websiteId]) - @@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) - revId Int @default(0) @map("rev_id") @db.UnsignedInt - userId String? @map("user_id") @db.VarChar(36) - teamId String? @map("team_id") @db.VarChar(36) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(0) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(0) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(0) - - team Team? @relation(fields: [teamId], references: [id]) - user User? @relation(fields: [userId], references: [id]) - - @@index([teamId]) - @@index([userId]) - @@index([createdAt]) - @@index([shareId]) - @@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) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(0) - url String @db.VarChar(500) - referrer String? @db.VarChar(500) - eventType Int @default(1) @map("event_type") @db.UnsignedInt - eventName String? @map("event_name") @db.VarChar(50) - eventData Json? @map("event_data") - - @@index([createdAt]) - @@index([sessionId]) - @@index([websiteId]) - @@index([websiteId, createdAt]) - @@index([websiteId, sessionId, createdAt]) - @@map("website_event") -} - -model Team { - id String @id() @unique() @map("team_id") @db.VarChar(36) - name String @db.VarChar(50) - userId String @map("user_id") @db.VarChar(36) - accessCode String? @unique @map("access_code") @db.VarChar(50) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(0) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(0) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(0) - - teamUsers TeamUser[] - Website Website[] - - @@index([userId]) - @@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.Timestamptz(0) - updatedAt DateTime? @map("updated_at") @db.Timestamptz(0) - deletedAt DateTime? @map("deleted_at") @db.Timestamptz(0) - - team Team @relation(fields: [teamId], references: [id]) - user User @relation(fields: [userId], references: [id]) - - @@index([teamId]) - @@index([userId]) - @@map("team_user") -}