immich/server/src/schema/migrations/1758705789125-CreateOCRSearchTable.ts
2025-10-15 14:26:32 -04:00

18 lines
924 B
TypeScript

import { Kysely, sql } from 'kysely';
export async function up(db: Kysely<any>): Promise<void> {
await sql`CREATE TABLE "ocr_search" ("assetId" uuid NOT NULL, "text" text NOT NULL);`.execute(db);
await sql`ALTER TABLE "ocr_search" ADD CONSTRAINT "ocr_search_pkey" PRIMARY KEY ("assetId");`.execute(db);
await sql`ALTER TABLE "ocr_search" ADD CONSTRAINT "ocr_search_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE;`.execute(
db,
);
await sql`CREATE INDEX "idx_ocr_search_text" ON "ocr_search" USING gin (f_unaccent("text") gin_trgm_ops);`.execute(
db,
);
}
export async function down(db: Kysely<any>): Promise<void> {
await sql`ALTER TABLE "ocr_search" DROP CONSTRAINT "ocr_search_pkey";`.execute(db);
await sql`ALTER TABLE "ocr_search" DROP CONSTRAINT "ocr_search_assetId_fkey";`.execute(db);
await sql`DROP TABLE "ocr_search";`.execute(db);
}