Fix invalid SQL syntax for index creation.
One of the sql generations mistakenly looked for a field value of '?'. Whatever code was causing this to occur is no longer an issue. This does highlight the difficulty of needing to delete or modify faulty migration files.
This commit is contained in:
parent
7cb0621585
commit
daa85abc8c
@ -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
|
||||
@ -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": {
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
{
|
||||
"idx": 0,
|
||||
"version": "6",
|
||||
"when": 1758831398886,
|
||||
"tag": "0000_living_dust",
|
||||
"when": 1758833816361,
|
||||
"tag": "0000_wandering_riptide",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
|
||||
@ -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<IndexBuilder>
|
||||
const recordTypeIndexGenerator: RecordTypeIndexGenerator = (x, y) => x.map(
|
||||
entry => index(`${entry.name}_index`).on(y.recordId).where(sql`type_id = ${entry.dbId}`)
|
||||
)
|
||||
];
|
||||
type RecordTypeIndexGenerator = (x: RecordTypeIndexConfig, y) => Array<IndexBuilder>;
|
||||
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)
|
||||
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]
|
||||
})
|
||||
}))
|
||||
references: [recordTypes.id],
|
||||
}),
|
||||
}));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user