diff --git a/db/mysql/migrations/02_add_event_data/migration.sql b/db/mysql/migrations/02_add_event_data/migration.sql index 83392fb4..c210895d 100644 --- a/db/mysql/migrations/02_add_event_data/migration.sql +++ b/db/mysql/migrations/02_add_event_data/migration.sql @@ -1,45 +1,39 @@ -- DropForeignKey -alter table `event` drop foreign key `event_ibfk_1`; -alter table `event` drop foreign key `event_ibfk_2`; +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`; +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); +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`; +RENAME TABLE `event` TO `_event_old`; -- CreateTable -create table `event` +CREATE TABLE `event` ( - event_id int unsigned auto_increment - primary key, - website_id int unsigned not null, - session_id int unsigned not null, - created_at timestamp default CURRENT_TIMESTAMP null, - url varchar(500) not null, - event_name varchar(50) NOT NULL, - constraint event_ibfk_1 - foreign key (website_id) references `website` (website_id) - on delete cascade, - constraint event_ibfk_2 - foreign key (session_id) references `session` (session_id) - on delete cascade -) - collate = utf8mb4_unicode_ci; + `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, -create index `event_created_at_idx` - on `event` (created_at); + 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; -create index `event_session_id_idx` - on `event` (session_id); +-- AddForeignKey +ALTER TABLE `event` ADD CONSTRAINT `event_ibfk_2` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE CASCADE ON UPDATE NO ACTION; -create index `event_website_id_idx` - on `event` (website_id); +-- 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 @@ -50,7 +44,7 @@ CREATE TABLE `event_data` ( UNIQUE INDEX `event_data_event_id_key`(`event_id`), PRIMARY KEY (`event_data_id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +) 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; diff --git a/db/postgresql/schema.prisma b/db/postgresql/schema.prisma index f466300b..880cc27c 100644 --- a/db/postgresql/schema.prisma +++ b/db/postgresql/schema.prisma @@ -26,7 +26,7 @@ model event { event_name String @db.VarChar(50) session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade) website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade) - eventData event_data? + event_data event_data? @@index([created_at]) @@index([session_id]) @@ -34,10 +34,10 @@ model event { } model event_data { - id Int @id @default(autoincrement()) - event_id Int @unique - event_data Json - event event @relation(fields: [event_id], references: [event_id]) + event_data_id Int @id @default(autoincrement()) + event_id Int @unique + event_data Json + event event @relation(fields: [event_id], references: [event_id]) } model pageview { diff --git a/pages/api/website/[id]/metrics.js b/pages/api/website/[id]/metrics.js index 50f568d3..78c8a066 100644 --- a/pages/api/website/[id]/metrics.js +++ b/pages/api/website/[id]/metrics.js @@ -22,7 +22,6 @@ function getTable(type) { function getColumn(type) { if (type === 'event') { - //return `concat(event_type, '\t', event_value)`; return `event_name`; } return type; diff --git a/queries/analytics/event/saveEvent.js b/queries/analytics/event/saveEvent.js index 3e71c61c..af1c78ed 100644 --- a/queries/analytics/event/saveEvent.js +++ b/queries/analytics/event/saveEvent.js @@ -23,9 +23,9 @@ async function relationalQuery(website_id, { session_id, url, event_name, event_ }; if (event_data) { - data.eventData = { + data.event_data = { create: { - eventData: event_data, + event_data: event_data, }, }; }