diff --git a/.env b/.env index 281ca24..849a432 100644 --- a/.env +++ b/.env @@ -5,7 +5,8 @@ # See the documentation for all the connection string options: https://pris.ly/d/connection-strings # DATABASE_URL="sqlserver://3team.devgrr.kr:1433;database=onsitesurvey;user=sa;password=1q2w3e4r!;encrypt=true;trustServerCertificate=true;" -DATABASE_URL="sqlserver://3team.devgrr.kr:1433;database=onsitesurvey;user=sa;password=1q2w3e4r!;encrypt=true;trustServerCertificate=true;connectionTimeout=30000" +DATABASE_URL="sqlserver://3team.devgrr.kr:1433;database=onsitesurvey;user=sa;password=1q2w3e4r!;encrypt=true;trustServerCertificate=true;connectionTimeout=30000;applicationName=OnSiteSurvey" +# DATABASE_URL="sqlserver://172.16.56.60:14331;database=hanwha_qcells_jp;user=qcells_jp;password=zbtpf2022!;encrypt=true;trustServerCertificate=true;applicationName=OnSiteSurvey" # DATABASE_URL="mysql://root:root@localhost:3306/onsitesurvey" DATABASE_CONNECTION_LIMIT=10 DATABASE_POOL_MIN=2 diff --git a/src/libs/prisma.ts b/src/libs/prisma.ts index e7e94bb..8c8482d 100644 --- a/src/libs/prisma.ts +++ b/src/libs/prisma.ts @@ -1,46 +1,55 @@ import { PrismaClient } from '@prisma/client' -const globalForPrisma = globalThis as unknown as { +const global = globalThis as unknown as { prisma: PrismaClient | undefined } export const prisma = - globalForPrisma.prisma ?? + global.prisma || new PrismaClient({ - log: ['query', 'error', 'warn'], - datasources: { - db: { - url: process.env.DATABASE_URL, - }, - }, - // connection pool 설정 - connectionLimit: Number(process.env.DATABASE_CONNECTION_LIMIT) || 10, // 기본값 10 - pool: { - min: Number(process.env.POOL_MIN) || 2, // 기본값 2 - max: Number(process.env.POOL_MAX) || 10, // 기본값 10 - idleTimeoutMillis: 30000, // 유휴 연결 타임아웃 (30초) - acquireTimeoutMillis: 30000, // 연결 획득 타임아웃 (30초) - }, + log: [ + { emit: 'stdout', level: 'query' }, // SQL 쿼리 + { emit: 'stdout', level: 'error' }, // 에러 + ], }) -prisma.$on('query', (e: any) => { - console.log('Query: ' + e.query) - console.log('Duration: ' + e.duration + 'ms') -}) +// export const prisma = +// globalForPrisma.prisma ?? +// new PrismaClient({ +// log: ['query', 'error', 'warn'], +// datasources: { +// db: { +// url: process.env.DATABASE_URL, +// // connection pool 설정 +// connectionLimit: Number(process.env.DATABASE_CONNECTION_LIMIT) || 10, // 기본값 10 +// pool: { +// min: Number(process.env.POOL_MIN) || 2, // 기본값 2 +// max: Number(process.env.POOL_MAX) || 10, // 기본값 10 +// idleTimeoutMillis: 30000, // 유휴 연결 타임아웃 (30초) +// acquireTimeoutMillis: 30000, // 연결 획득 타임아웃 (30초) +// }, +// }, +// }, +// }) -prisma.$on('error', (e: any) => { - console.error('Prisma Error:', e) -}) +// prisma.$on('query', (e: any) => { +// console.log('Query: ' + e.query) +// console.log('Duration: ' + e.duration + 'ms') +// }) -// 애플리케이션 종료 시 연결 정리 -process.on('SIGINT', async () => { - await prisma.$disconnect() - process.exit(0) -}) +// prisma.$on('error', (e: any) => { +// console.error('Prisma Error:', e) +// }) -process.on('SIGTERM', async () => { - await prisma.$disconnect() - process.exit(0) -}) +// // 애플리케이션 종료 시 연결 정리 +// process.on('SIGINT', async () => { +// await prisma.$disconnect() +// process.exit(0) +// }) -if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma +// process.on('SIGTERM', async () => { +// await prisma.$disconnect() +// process.exit(0) +// }) + +if (process.env.NODE_ENV !== 'production') global.prisma = prisma