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
|
--> statement-breakpoint
|
||||||
CREATE UNIQUE INDEX `records_record_id_unique` ON `records` (`record_id`);--> 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 `chores_index` ON `records` (`record_id`) WHERE type_id = 1;--> statement-breakpoint
|
||||||
CREATE INDEX `project_index` ON `records` (`record_id`) WHERE type_id = ?;--> 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 = ?;--> statement-breakpoint
|
CREATE INDEX `ticket_index` ON `records` (`record_id`) WHERE type_id = 3;--> statement-breakpoint
|
||||||
CREATE TABLE `record_types` (
|
CREATE TABLE `record_types` (
|
||||||
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||||
`type` text
|
`type` text
|
||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": "6",
|
"version": "6",
|
||||||
"dialect": "sqlite",
|
"dialect": "sqlite",
|
||||||
"id": "8ed760e9-a6fd-43ca-85d1-987033a5a1e6",
|
"id": "feb276b9-6e2b-4204-885b-167701a4a707",
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||||
"tables": {
|
"tables": {
|
||||||
"records": {
|
"records": {
|
||||||
@ -43,7 +43,7 @@
|
|||||||
"record_id"
|
"record_id"
|
||||||
],
|
],
|
||||||
"isUnique": false,
|
"isUnique": false,
|
||||||
"where": "type_id = ?"
|
"where": "type_id = 1"
|
||||||
},
|
},
|
||||||
"project_index": {
|
"project_index": {
|
||||||
"name": "project_index",
|
"name": "project_index",
|
||||||
@ -51,7 +51,7 @@
|
|||||||
"record_id"
|
"record_id"
|
||||||
],
|
],
|
||||||
"isUnique": false,
|
"isUnique": false,
|
||||||
"where": "type_id = ?"
|
"where": "type_id = 2"
|
||||||
},
|
},
|
||||||
"ticket_index": {
|
"ticket_index": {
|
||||||
"name": "ticket_index",
|
"name": "ticket_index",
|
||||||
@ -59,7 +59,7 @@
|
|||||||
"record_id"
|
"record_id"
|
||||||
],
|
],
|
||||||
"isUnique": false,
|
"isUnique": false,
|
||||||
"where": "type_id = ?"
|
"where": "type_id = 3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
{
|
{
|
||||||
"idx": 0,
|
"idx": 0,
|
||||||
"version": "6",
|
"version": "6",
|
||||||
"when": 1758831398886,
|
"when": 1758833816361,
|
||||||
"tag": "0000_living_dust",
|
"tag": "0000_wandering_riptide",
|
||||||
"breakpoints": true
|
"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 { relations, sql } from "drizzle-orm";
|
||||||
|
import { index, type IndexBuilder, integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
|
||||||
|
import { recordTypes } from "./recordTypes";
|
||||||
|
|
||||||
type RecordTypeIndexConfig = Array<{
|
type RecordTypeIndexConfig = Array<{
|
||||||
dbId: number,
|
dbId: number;
|
||||||
name: string
|
name: string;
|
||||||
}>
|
}>;
|
||||||
const recordTypeIndexConfig: RecordTypeIndexConfig = [
|
const recordTypeIndexConfig: RecordTypeIndexConfig = [
|
||||||
{ dbId: 1, name: "chores" },
|
{ dbId: 1, name: "chores" },
|
||||||
{ dbId: 2, name: "project" },
|
{ dbId: 2, name: "project" },
|
||||||
{ dbId: 3, name: "ticket" },
|
{ dbId: 3, name: "ticket" },
|
||||||
]
|
];
|
||||||
type RecordTypeIndexGenerator = (x: RecordTypeIndexConfig, y) => Array<IndexBuilder>
|
type RecordTypeIndexGenerator = (x: RecordTypeIndexConfig, y) => Array<IndexBuilder>;
|
||||||
const recordTypeIndexGenerator: RecordTypeIndexGenerator = (x, y) => x.map(
|
const recordTypeIndexGenerator: RecordTypeIndexGenerator = (x, y) =>
|
||||||
entry => index(`${entry.name}_index`).on(y.recordId).where(sql`type_id = ${entry.dbId}`)
|
x.map(
|
||||||
)
|
entry => index(`${entry.name}_index`).on(y.recordId).where(sql.raw(`type_id = ${entry.dbId}`)),
|
||||||
|
);
|
||||||
|
|
||||||
export const records = sqliteTable("records", {
|
export const records = sqliteTable("records", {
|
||||||
id: integer("id").primaryKey({ autoIncrement: true }),
|
id: integer("id").primaryKey({ autoIncrement: true }),
|
||||||
recordId: text("record_id").unique().notNull(),
|
recordId: text("record_id").unique().notNull(),
|
||||||
typeId: integer("type_id").notNull().references(() => recordTypes.id)
|
typeId: integer("type_id").notNull().references(() => recordTypes.id),
|
||||||
}, (table) => [
|
}, (table) => [
|
||||||
...recordTypeIndexGenerator(recordTypeIndexConfig, table)
|
...recordTypeIndexGenerator(recordTypeIndexConfig, table),
|
||||||
])
|
]);
|
||||||
|
|
||||||
export const recordsRelations = relations(records, ({ one }) => ({
|
export const recordsRelations = relations(records, ({ one }) => ({
|
||||||
type: one(recordTypes, {
|
type: one(recordTypes, {
|
||||||
fields: [records.typeId],
|
fields: [records.typeId],
|
||||||
references: [recordTypes.id]
|
references: [recordTypes.id],
|
||||||
})
|
}),
|
||||||
}))
|
}));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user