From 11c469907f53e6e7b88b60699e9a98ff2f789fd5 Mon Sep 17 00:00:00 2001 From: Mert <101130780+mertalev@users.noreply.github.com> Date: Fri, 20 Jun 2025 16:36:07 +0300 Subject: [PATCH] fix(server): migration failing on pg15+ (#19363) * reset params * unused parameter --- .../1750323941566-UnsetPrewarmDimParameter.ts | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts b/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts index ffad855964..93600f34d5 100644 --- a/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts +++ b/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts @@ -1,15 +1,21 @@ import { Kysely, sql } from 'kysely'; -export async function up(db: Kysely): Promise { - const { rows } = await sql<{ db: string }>`SELECT current_database() as db;`.execute(db); - const databaseName = rows[0].db; - await sql.raw(`ALTER DATABASE "${databaseName}" RESET vchordrq.prewarm_dim;`).execute(db); +export async function up(qb: Kysely): Promise { + type Conf = { db: string; guc: string[] }; + const res = await sql`select current_database() db, to_json(setconfig) guc from pg_db_role_setting`.execute(qb); + if (res.rows.length === 0) { + return; + } + + await sql`alter database immich reset all;`.execute(qb); + const { db, guc } = res.rows[0]; + for (const parameter of guc) { + const [key, value] = parameter.split('='); + if (key === 'vchordrq.prewarm_dim') { + continue; + } + await sql.raw(`alter database "${db}" set ${key} to ${value};`).execute(qb); + } } -export async function down(db: Kysely): Promise { - const { rows } = await sql<{ db: string }>`SELECT current_database() as db;`.execute(db); - const databaseName = rows[0].db; - await sql - .raw(`ALTER DATABASE "${databaseName}" SET vchordrq.prewarm_dim = '512,640,768,1024,1152,1536';`) - .execute(db); -} +export async function down(): Promise {}