fix: unset prewarn param (#20109)

This commit is contained in:
Jason Rasmussen 2025-07-23 16:52:59 -04:00 committed by GitHub
parent 2bead445bd
commit a675922172
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 23 deletions

View File

@ -85,8 +85,13 @@ export class LoggingRepository {
this.logger = new MyConsoleLogger(cls, { context: LoggingRepository.name, color: !noColor }); this.logger = new MyConsoleLogger(cls, { context: LoggingRepository.name, color: !noColor });
} }
static create() { static create(context?: string) {
return new LoggingRepository(undefined, undefined); const logger = new LoggingRepository(undefined, undefined);
if (context) {
logger.setContext(context);
}
return logger;
} }
setAppName(name: string): void { setAppName(name: string): void {

View File

@ -1,25 +1,22 @@
import { Kysely, sql } from 'kysely'; import { Kysely, sql } from 'kysely';
import { LoggingRepository } from 'src/repositories/logging.repository';
export async function up(qb: Kysely<any>): Promise<void> { const logger = LoggingRepository.create('Migrations');
type Conf = { db: string; guc: string[] };
const res = await sql<Conf>`
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 { db, guc } = res.rows[0]; export async function up(db: Kysely<any>): Promise<void> {
await sql.raw(`alter database "${db}" reset all;`).execute(qb); const { rows } = await sql<{ db: string }>`SELECT current_database() as db;`.execute(db);
for (const parameter of guc) { const databaseName = rows[0].db;
const [key, value] = parameter.split('='); try {
if (key === 'vchordrq.prewarm_dim') { await sql.raw(`ALTER DATABASE "${databaseName}" RESET vchordrq.prewarm_dim;`).execute(db);
continue; } catch {
} logger.warn('Failed to reset vchordrq.prewarm_dim, skipping');
await sql.raw(`alter database "${db}" set ${key} to ${value};`).execute(qb);
} }
} }
export async function down(): Promise<void> {} export async function down(db: Kysely<any>): Promise<void> {
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);
}

View File

@ -1,8 +1,7 @@
import { Kysely, sql } from 'kysely'; import { Kysely, sql } from 'kysely';
import { LoggingRepository } from 'src/repositories/logging.repository'; import { LoggingRepository } from 'src/repositories/logging.repository';
const logger = LoggingRepository.create(); const logger = LoggingRepository.create('Migrations');
logger.setContext('Migrations');
export async function up(db: Kysely<any>): Promise<void> { export async function up(db: Kysely<any>): Promise<void> {
if (process.env.IMMICH_MEDIA_LOCATION) { if (process.env.IMMICH_MEDIA_LOCATION) {