From 70711de81c2781486c343af6c6f35e5639f3fec6 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Thu, 4 Jun 2026 15:21:51 +0330 Subject: [PATCH] increase connection pool --- src/config/mikro-orm.config.dev.ts | 1 + src/config/mikro-orm.config.ts | 17 ++++------------- src/core/interceptors/response.interceptor.ts | 3 +-- .../admin/repositories/admin.repository.ts | 3 +-- 4 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/config/mikro-orm.config.dev.ts b/src/config/mikro-orm.config.dev.ts index fec939c..d04cfc2 100644 --- a/src/config/mikro-orm.config.dev.ts +++ b/src/config/mikro-orm.config.dev.ts @@ -61,6 +61,7 @@ export default defineConfig({ emit: 'ts', }, connect: true, + // CLI-only (migrations/seeders run outside HTTP); runtime app config must not set this. allowGlobalContext: true, seeder: { path: './dist/seeders', diff --git a/src/config/mikro-orm.config.ts b/src/config/mikro-orm.config.ts index 4d4cef9..4ce0004 100644 --- a/src/config/mikro-orm.config.ts +++ b/src/config/mikro-orm.config.ts @@ -8,16 +8,7 @@ import { MIKRO_ORM_QUERY_LOGGER } from '../common/constants'; import { mikroOrmQueryLoggerProvider } from '../common/providers/mikro-orm-logger.provider'; const dataBaseConfig: MikroOrmModuleAsyncOptions = { - // entities: ['dist/**/*.entity.js'], - // entitiesTs: ['src/**/*.entity.ts'], - // dbName: 'your_db_name', - // type: 'postgresql', - // user: 'your_user', - // password: 'your_password', - // host: 'localhost', - // port: 5432, - // debug: true, - + inject: [ConfigService, MIKRO_ORM_QUERY_LOGGER], providers: [mikroOrmQueryLoggerProvider], useFactory: (configService: ConfigService, logger: Logger) => { @@ -46,8 +37,8 @@ const dataBaseConfig: MikroOrmModuleAsyncOptions = { }, forceUtcTimezone: true, pool: { - min: isProduction ? 5 : 2, - max: isProduction ? 20 : 10, + min: isProduction ? 30 : 5, + max: isProduction ? 100 : 50, idleTimeoutMillis: 30000, acquireTimeoutMillis: 30000, reapIntervalMillis: 1000, @@ -71,7 +62,7 @@ const dataBaseConfig: MikroOrmModuleAsyncOptions = { emit: 'ts', }, connect: true, - allowGlobalContext: true, + registerRequestContext: true, driverOptions: { connection: { keepAlive: true, diff --git a/src/core/interceptors/response.interceptor.ts b/src/core/interceptors/response.interceptor.ts index fd88467..bb4b286 100755 --- a/src/core/interceptors/response.interceptor.ts +++ b/src/core/interceptors/response.interceptor.ts @@ -22,8 +22,7 @@ export class ResponseInterceptor implements NestInterceptor { map(data => { // If data is already wrapped or doesn't need wrapping, return as-is if (data && typeof data === 'object' && 'data' in data && 'success' in data) { - console.log('data', data) - + return { data: data, ...('nextCursor' in (data as any) && (data as any).nextCursor != null diff --git a/src/modules/admin/repositories/admin.repository.ts b/src/modules/admin/repositories/admin.repository.ts index 04868a5..aebf8e1 100644 --- a/src/modules/admin/repositories/admin.repository.ts +++ b/src/modules/admin/repositories/admin.repository.ts @@ -15,8 +15,7 @@ export class AdminRepository extends EntityRepository { } async findByPhoneAndRestaurantSlug(phone: string, slug: string): Promise { - console.log('phone', phone); - const normalizedPhone = normalizePhone(phone); + const normalizedPhone = normalizePhone(phone); // First, find the restaurant by slug using the same repository as auth service const restaurant = await this.restRepository.findOne({ slug }); if (!restaurant) {