chore: db url appName추가, prisma 임시 원복

This commit is contained in:
Daseul Kim 2025-06-11 17:53:44 +09:00
parent b97af6338e
commit d36b5c714f
2 changed files with 44 additions and 34 deletions

3
.env
View File

@ -5,7 +5,8 @@
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings # 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;"
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_URL="mysql://root:root@localhost:3306/onsitesurvey"
DATABASE_CONNECTION_LIMIT=10 DATABASE_CONNECTION_LIMIT=10
DATABASE_POOL_MIN=2 DATABASE_POOL_MIN=2

View File

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