onsitesurvey/src/libs/prisma.ts

56 lines
1.5 KiB
TypeScript

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