feat: log sql queries (#444)
This commit is contained in:
@@ -1,9 +1,12 @@
|
|||||||
import Database from "better-sqlite3";
|
import Database from "better-sqlite3";
|
||||||
|
import type { Logger } from "drizzle-orm";
|
||||||
import type { BetterSQLite3Database } from "drizzle-orm/better-sqlite3";
|
import type { BetterSQLite3Database } from "drizzle-orm/better-sqlite3";
|
||||||
import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3";
|
import { drizzle as drizzleSqlite } from "drizzle-orm/better-sqlite3";
|
||||||
import { drizzle as drizzleMysql } from "drizzle-orm/mysql2";
|
import { drizzle as drizzleMysql } from "drizzle-orm/mysql2";
|
||||||
import mysql from "mysql2";
|
import mysql from "mysql2";
|
||||||
|
|
||||||
|
import { logger } from "@homarr/log";
|
||||||
|
|
||||||
import * as mysqlSchema from "./schema/mysql";
|
import * as mysqlSchema from "./schema/mysql";
|
||||||
import * as sqliteSchema from "./schema/sqlite";
|
import * as sqliteSchema from "./schema/sqlite";
|
||||||
|
|
||||||
@@ -25,9 +28,18 @@ const init = () => {
|
|||||||
export let connection: Database.Database | mysql.Connection;
|
export let connection: Database.Database | mysql.Connection;
|
||||||
export let database: HomarrDatabase;
|
export let database: HomarrDatabase;
|
||||||
|
|
||||||
|
class WinstonDrizzleLogger implements Logger {
|
||||||
|
logQuery(query: string, _: unknown[]): void {
|
||||||
|
logger.debug(`Executed SQL query: ${query}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const initBetterSqlite = () => {
|
const initBetterSqlite = () => {
|
||||||
connection = new Database(process.env.DB_URL);
|
connection = new Database(process.env.DB_URL);
|
||||||
database = drizzleSqlite(connection, { schema: sqliteSchema });
|
database = drizzleSqlite(connection, {
|
||||||
|
schema: sqliteSchema,
|
||||||
|
logger: new WinstonDrizzleLogger(),
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const initMySQL2 = () => {
|
const initMySQL2 = () => {
|
||||||
@@ -46,6 +58,7 @@ const initMySQL2 = () => {
|
|||||||
database = drizzleMysql(connection, {
|
database = drizzleMysql(connection, {
|
||||||
schema: mysqlSchema,
|
schema: mysqlSchema,
|
||||||
mode: "default",
|
mode: "default",
|
||||||
|
logger: new WinstonDrizzleLogger(),
|
||||||
}) as unknown as HomarrDatabase;
|
}) as unknown as HomarrDatabase;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"@homarr/definitions": "workspace:^0.1.0",
|
"@homarr/definitions": "workspace:^0.1.0",
|
||||||
|
"@homarr/log": "workspace:^0.1.0",
|
||||||
"@paralleldrive/cuid2": "^2.2.2",
|
"@paralleldrive/cuid2": "^2.2.2",
|
||||||
"better-sqlite3": "^9.6.0",
|
"better-sqlite3": "^9.6.0",
|
||||||
"drizzle-orm": "^0.30.10",
|
"drizzle-orm": "^0.30.10",
|
||||||
|
|||||||
3
pnpm-lock.yaml
generated
3
pnpm-lock.yaml
generated
@@ -485,6 +485,9 @@ importers:
|
|||||||
'@homarr/definitions':
|
'@homarr/definitions':
|
||||||
specifier: workspace:^0.1.0
|
specifier: workspace:^0.1.0
|
||||||
version: link:../definitions
|
version: link:../definitions
|
||||||
|
'@homarr/log':
|
||||||
|
specifier: workspace:^0.1.0
|
||||||
|
version: link:../log
|
||||||
'@paralleldrive/cuid2':
|
'@paralleldrive/cuid2':
|
||||||
specifier: ^2.2.2
|
specifier: ^2.2.2
|
||||||
version: 2.2.2
|
version: 2.2.2
|
||||||
|
|||||||
Reference in New Issue
Block a user