diff --git a/packages/db/driver.ts b/packages/db/driver.ts index 37d924d37..91c9085d7 100644 --- a/packages/db/driver.ts +++ b/packages/db/driver.ts @@ -1,9 +1,12 @@ import Database from "better-sqlite3"; +import type { Logger } from "drizzle-orm"; import type { BetterSQLite3Database } from "drizzle-orm/better-sqlite3"; import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3"; import { drizzle as drizzleMysql } from "drizzle-orm/mysql2"; import mysql from "mysql2"; +import { logger } from "@homarr/log"; + import * as mysqlSchema from "./schema/mysql"; import * as sqliteSchema from "./schema/sqlite"; @@ -25,9 +28,18 @@ const init = () => { export let connection: Database.Database | mysql.Connection; export let database: HomarrDatabase; +class WinstonDrizzleLogger implements Logger { + logQuery(query: string, _: unknown[]): void { + logger.debug(`Executed SQL query: ${query}`); + } +} + const initBetterSqlite = () => { connection = new Database(process.env.DB_URL); - database = drizzleSqlite(connection, { schema: sqliteSchema }); + database = drizzleSqlite(connection, { + schema: sqliteSchema, + logger: new WinstonDrizzleLogger(), + }); }; const initMySQL2 = () => { @@ -46,6 +58,7 @@ const initMySQL2 = () => { database = drizzleMysql(connection, { schema: mysqlSchema, mode: "default", + logger: new WinstonDrizzleLogger(), }) as unknown as HomarrDatabase; }; diff --git a/packages/db/package.json b/packages/db/package.json index 92a2f5341..32684b7f9 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -27,6 +27,7 @@ "dependencies": { "@homarr/common": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", + "@homarr/log": "workspace:^0.1.0", "@paralleldrive/cuid2": "^2.2.2", "better-sqlite3": "^9.6.0", "drizzle-orm": "^0.30.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2931b27f1..a10b5bddb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -485,6 +485,9 @@ importers: '@homarr/definitions': specifier: workspace:^0.1.0 version: link:../definitions + '@homarr/log': + specifier: workspace:^0.1.0 + version: link:../log '@paralleldrive/cuid2': specifier: ^2.2.2 version: 2.2.2