From 8e10eb7d591d5d3d92be90b3fa95613760cf1c8b Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sat, 18 Nov 2023 19:21:02 +0000 Subject: [PATCH] Add option to enable MikroORM database debug logging --- src/config/schema.ts | 4 ++++ src/modules/mikro/index.ts | 6 ++++-- src/modules/mikro/orm.ts | 7 ++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/config/schema.ts b/src/config/schema.ts index b94e46c..e6ec194 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -41,6 +41,10 @@ export const configSchema = z.object({ // will always keep the database schema in sync with the connected database // it is extremely destructive, do not use it EVER in production syncSchema: z.coerce.boolean().default(false), + + // Enable debug logging for MikroORM - Outputs queries and entity management logs + // Do NOT use in production, leaks all sensitive data + debugLogging: z.coerce.boolean().default(false), }), crypto: z.object({ // session secret. used for signing session tokens diff --git a/src/modules/mikro/index.ts b/src/modules/mikro/index.ts index d9dae43..415b835 100644 --- a/src/modules/mikro/index.ts +++ b/src/modules/mikro/index.ts @@ -14,8 +14,10 @@ export function getORM() { export async function setupMikroORM() { log.info(`Connecting to postgres`, { evt: 'connecting' }); - const mikro = await createORM(conf.postgres.connection, (msg) => - log.info(msg), + const mikro = await createORM( + conf.postgres.connection, + conf.postgres.debugLogging, + (msg) => log.info(msg), ); if (conf.postgres.syncSchema) { diff --git a/src/modules/mikro/orm.ts b/src/modules/mikro/orm.ts index a22cc67..3987b46 100644 --- a/src/modules/mikro/orm.ts +++ b/src/modules/mikro/orm.ts @@ -16,9 +16,14 @@ export function makeOrmConfig(url: string): Options { }; } -export async function createORM(url: string, log: (msg: string) => void) { +export async function createORM( + url: string, + debug: boolean, + log: (msg: string) => void, +) { return await MikroORM.init({ ...makeOrmConfig(url), logger: log, + debug, }); }