diff --git a/drizzle/0000_living_dust.sql b/drizzle/0000_wandering_riptide.sql similarity index 86% rename from drizzle/0000_living_dust.sql rename to drizzle/0000_wandering_riptide.sql index 30bbeba..0008597 100644 --- a/drizzle/0000_living_dust.sql +++ b/drizzle/0000_wandering_riptide.sql @@ -6,9 +6,9 @@ CREATE TABLE `records` ( ); --> statement-breakpoint CREATE UNIQUE INDEX `records_record_id_unique` ON `records` (`record_id`);--> statement-breakpoint -CREATE INDEX `chores_index` ON `records` (`record_id`) WHERE type_id = ?;--> statement-breakpoint -CREATE INDEX `project_index` ON `records` (`record_id`) WHERE type_id = ?;--> statement-breakpoint -CREATE INDEX `ticket_index` ON `records` (`record_id`) WHERE type_id = ?;--> statement-breakpoint +CREATE INDEX `chores_index` ON `records` (`record_id`) WHERE type_id = 1;--> statement-breakpoint +CREATE INDEX `project_index` ON `records` (`record_id`) WHERE type_id = 2;--> statement-breakpoint +CREATE INDEX `ticket_index` ON `records` (`record_id`) WHERE type_id = 3;--> statement-breakpoint CREATE TABLE `record_types` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `type` text diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json index f8894b9..b664f82 100644 --- a/drizzle/meta/0000_snapshot.json +++ b/drizzle/meta/0000_snapshot.json @@ -1,7 +1,7 @@ { "version": "6", "dialect": "sqlite", - "id": "8ed760e9-a6fd-43ca-85d1-987033a5a1e6", + "id": "feb276b9-6e2b-4204-885b-167701a4a707", "prevId": "00000000-0000-0000-0000-000000000000", "tables": { "records": { @@ -43,7 +43,7 @@ "record_id" ], "isUnique": false, - "where": "type_id = ?" + "where": "type_id = 1" }, "project_index": { "name": "project_index", @@ -51,7 +51,7 @@ "record_id" ], "isUnique": false, - "where": "type_id = ?" + "where": "type_id = 2" }, "ticket_index": { "name": "ticket_index", @@ -59,7 +59,7 @@ "record_id" ], "isUnique": false, - "where": "type_id = ?" + "where": "type_id = 3" } }, "foreignKeys": { diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 5678719..48a1b93 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -5,8 +5,8 @@ { "idx": 0, "version": "6", - "when": 1758831398886, - "tag": "0000_living_dust", + "when": 1758833816361, + "tag": "0000_wandering_riptide", "breakpoints": true } ] diff --git a/src/lib/server/db/schema/records.ts b/src/lib/server/db/schema/records.ts index e8d31aa..4310274 100644 --- a/src/lib/server/db/schema/records.ts +++ b/src/lib/server/db/schema/records.ts @@ -1,32 +1,33 @@ -import { integer, text, sqliteTable, index, type IndexBuilder } from "drizzle-orm/sqlite-core"; -import { recordTypes } from "./recordTypes"; import { relations, sql } from "drizzle-orm"; +import { index, type IndexBuilder, integer, sqliteTable, text } from "drizzle-orm/sqlite-core"; +import { recordTypes } from "./recordTypes"; type RecordTypeIndexConfig = Array<{ - dbId: number, - name: string -}> + dbId: number; + name: string; +}>; const recordTypeIndexConfig: RecordTypeIndexConfig = [ - {dbId: 1, name: "chores"}, - {dbId: 2, name: "project"}, - {dbId: 3, name: "ticket"}, -] -type RecordTypeIndexGenerator = (x: RecordTypeIndexConfig, y) => Array -const recordTypeIndexGenerator: RecordTypeIndexGenerator = (x, y) => x.map( - entry => index(`${entry.name}_index`).on(y.recordId).where(sql`type_id = ${entry.dbId}`) -) + { dbId: 1, name: "chores" }, + { dbId: 2, name: "project" }, + { dbId: 3, name: "ticket" }, +]; +type RecordTypeIndexGenerator = (x: RecordTypeIndexConfig, y) => Array; +const recordTypeIndexGenerator: RecordTypeIndexGenerator = (x, y) => + x.map( + entry => index(`${entry.name}_index`).on(y.recordId).where(sql.raw(`type_id = ${entry.dbId}`)), + ); export const records = sqliteTable("records", { - id: integer("id").primaryKey({ autoIncrement: true }), - recordId: text("record_id").unique().notNull(), - typeId: integer("type_id").notNull().references(() => recordTypes.id) + id: integer("id").primaryKey({ autoIncrement: true }), + recordId: text("record_id").unique().notNull(), + typeId: integer("type_id").notNull().references(() => recordTypes.id), }, (table) => [ - ...recordTypeIndexGenerator(recordTypeIndexConfig, table) -]) + ...recordTypeIndexGenerator(recordTypeIndexConfig, table), +]); export const recordsRelations = relations(records, ({ one }) => ({ - type: one(recordTypes, { - fields: [records.typeId], - references: [recordTypes.id] - }) -})) + type: one(recordTypes, { + fields: [records.typeId], + references: [recordTypes.id], + }), +}));