import { PrismaClient } from '@prisma/client' const global = globalThis as unknown as { prisma: PrismaClient | undefined } export const prisma = global.prisma || new PrismaClient({ log: [ { emit: 'stdout', level: 'query' }, // SQL 쿼리 { emit: 'stdout', level: 'error' }, // 에러 ], }) // 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('query', (e: any) => { // console.log('Query: ' + e.query) // console.log('Duration: ' + e.duration + 'ms') // }) // prisma.$on('error', (e: any) => { // console.error('Prisma Error:', e) // }) // // 애플리케이션 종료 시 연결 정리 // process.on('SIGINT', async () => { // await prisma.$disconnect() // process.exit(0) // }) // process.on('SIGTERM', async () => { // await prisma.$disconnect() // process.exit(0) // }) if (process.env.NODE_ENV !== 'production') global.prisma = prisma