From 29bbecfe44694f1e68aa7a9843fbf4bded3d417a Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Sat, 6 Dec 2025 15:23:02 +0100 Subject: [PATCH] finetune code, move drizzle init after type orm init --- database/src/AppDatabase.ts | 23 +++++++++++----------- database/src/queries/index.ts | 6 ------ database/src/queries/openaiThreads.test.ts | 5 ++--- database/src/queries/openaiThreads.ts | 2 +- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/database/src/AppDatabase.ts b/database/src/AppDatabase.ts index 72ee114c8..6e0fe7c08 100644 --- a/database/src/AppDatabase.ts +++ b/database/src/AppDatabase.ts @@ -83,17 +83,6 @@ export class AppDatabase { }) } - if (!this.drizzleDataSource) { - this.drizzleConnection = await createConnection({ - host: CONFIG.DB_HOST, - user: CONFIG.DB_USER, - password: CONFIG.DB_PASSWORD, - database: CONFIG.DB_DATABASE, - port: CONFIG.DB_PORT, - }) - await this.drizzleConnection.ping() - this.drizzleDataSource = drizzle({ client: this.drizzleConnection }) - } // retry connection on failure some times to allow database to catch up for (let attempt = 1; attempt <= CONFIG.DB_CONNECT_RETRY_COUNT; attempt++) { try { @@ -115,6 +104,17 @@ export class AppDatabase { this.redisClient = new Redis(CONFIG.REDIS_URL) logger.info('Redis status=', this.redisClient.status) + + if (!this.drizzleDataSource) { + this.drizzleConnection = await createConnection({ + host: CONFIG.DB_HOST, + user: CONFIG.DB_USER, + password: CONFIG.DB_PASSWORD, + database: CONFIG.DB_DATABASE, + port: CONFIG.DB_PORT, + }) + this.drizzleDataSource = drizzle({ client: this.drizzleConnection }) + } } public async destroy(): Promise { @@ -151,3 +151,4 @@ export class AppDatabase { } export const getDataSource = () => AppDatabase.getInstance().getDataSource() +export const drizzleDb = () => AppDatabase.getInstance().getDrizzleDataSource() diff --git a/database/src/queries/index.ts b/database/src/queries/index.ts index 5294cd711..0a7eb9ac3 100644 --- a/database/src/queries/index.ts +++ b/database/src/queries/index.ts @@ -1,5 +1,3 @@ -import { MySql2Database } from 'drizzle-orm/mysql2' -import { AppDatabase } from '../AppDatabase' import { LOG4JS_BASE_CATEGORY_NAME } from '../config/const' export * from './communities' @@ -11,8 +9,4 @@ export * from './transactionLinks' export * from './transactions' export * from './user' -export function drizzleDb(): MySql2Database { - return AppDatabase.getInstance().getDrizzleDataSource() -} - export const LOG4JS_QUERIES_CATEGORY_NAME = `${LOG4JS_BASE_CATEGORY_NAME}.queries` diff --git a/database/src/queries/openaiThreads.test.ts b/database/src/queries/openaiThreads.test.ts index 06aaabfaf..03542f009 100644 --- a/database/src/queries/openaiThreads.test.ts +++ b/database/src/queries/openaiThreads.test.ts @@ -1,7 +1,6 @@ -import { beforeEach } from 'node:test' import { eq } from 'drizzle-orm' import { MySql2Database } from 'drizzle-orm/mysql2' -import { AppDatabase } from '../AppDatabase' +import { AppDatabase, drizzleDb } from '../AppDatabase' import { openaiThreadsTable } from '../schemas' import { dbDeleteOpenaiThread, @@ -15,7 +14,7 @@ let db: MySql2Database beforeAll(async () => { await appDB.init() - db = appDB.getDrizzleDataSource() + db = drizzleDb() try { await db.delete(openaiThreadsTable) } catch(e) { diff --git a/database/src/queries/openaiThreads.ts b/database/src/queries/openaiThreads.ts index d88001d68..ba3a0b7e5 100644 --- a/database/src/queries/openaiThreads.ts +++ b/database/src/queries/openaiThreads.ts @@ -1,6 +1,6 @@ import { desc, eq } from 'drizzle-orm' +import { drizzleDb } from '../AppDatabase' import { openaiThreadsTable } from '../schemas/drizzle.schema' -import { drizzleDb } from '.' // TODO: replace results with valibot schema after update to typescript 5 is possible