From a6759221727c64c82d7329cf276095129098e33a Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Wed, 23 Jul 2025 16:52:59 -0400 Subject: [PATCH] fix: unset prewarn param (#20109) --- server/src/repositories/logging.repository.ts | 9 +++-- .../1750323941566-UnsetPrewarmDimParameter.ts | 35 +++++++++---------- .../1752759108283-ConvertToAbsolutePaths.ts | 3 +- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/server/src/repositories/logging.repository.ts b/server/src/repositories/logging.repository.ts index 1833168f3e..939ecb718f 100644 --- a/server/src/repositories/logging.repository.ts +++ b/server/src/repositories/logging.repository.ts @@ -85,8 +85,13 @@ export class LoggingRepository { this.logger = new MyConsoleLogger(cls, { context: LoggingRepository.name, color: !noColor }); } - static create() { - return new LoggingRepository(undefined, undefined); + static create(context?: string) { + const logger = new LoggingRepository(undefined, undefined); + if (context) { + logger.setContext(context); + } + + return logger; } setAppName(name: string): void { diff --git a/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts b/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts index 776b51d1db..d687694490 100644 --- a/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts +++ b/server/src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts @@ -1,25 +1,22 @@ import { Kysely, sql } from 'kysely'; +import { LoggingRepository } from 'src/repositories/logging.repository'; -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 - where setdatabase = (select oid from pg_database where datname = current_database()) - and setrole = 0;`.execute(qb); - if (res.rows.length === 0) { - return; - } +const logger = LoggingRepository.create('Migrations'); - const { db, guc } = res.rows[0]; - await sql.raw(`alter database "${db}" reset all;`).execute(qb); - 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 up(db: Kysely): Promise { + const { rows } = await sql<{ db: string }>`SELECT current_database() as db;`.execute(db); + const databaseName = rows[0].db; + try { + await sql.raw(`ALTER DATABASE "${databaseName}" RESET vchordrq.prewarm_dim;`).execute(db); + } catch { + logger.warn('Failed to reset vchordrq.prewarm_dim, skipping'); } } -export async function down(): Promise {} +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); +} diff --git a/server/src/schema/migrations/1752759108283-ConvertToAbsolutePaths.ts b/server/src/schema/migrations/1752759108283-ConvertToAbsolutePaths.ts index 68b0c7931e..839af40cf5 100644 --- a/server/src/schema/migrations/1752759108283-ConvertToAbsolutePaths.ts +++ b/server/src/schema/migrations/1752759108283-ConvertToAbsolutePaths.ts @@ -1,8 +1,7 @@ import { Kysely, sql } from 'kysely'; import { LoggingRepository } from 'src/repositories/logging.repository'; -const logger = LoggingRepository.create(); -logger.setContext('Migrations'); +const logger = LoggingRepository.create('Migrations'); export async function up(db: Kysely): Promise { if (process.env.IMMICH_MEDIA_LOCATION) {