Files
soul-yongping/next-project/lib/prisma.ts
2026-02-09 14:43:35 +08:00

37 lines
969 B
TypeScript

/**
* Prisma Client 单例实例
* Prisma 7 使用 engineType="client" 时必须提供 adapter
* 使用 @prisma/adapter-mariadb 连接 MySQL
*/
import { PrismaMariaDb } from '@prisma/adapter-mariadb'
import { PrismaClient } from '@/lib/generated/prisma'
const DEFAULT_DATABASE_URL =
'mysql://cdb_outerroot:Zhiqun1984@56b4c23f6853c.gz.cdb.myqcloud.com:14413/soul_miniprogram'
declare global {
// eslint-disable-next-line no-var
var prisma: PrismaClient | undefined
}
// Prisma 7 要求:使用 client 引擎时必须传入 adapter
const adapter = new PrismaMariaDb(
process.env.DATABASE_URL || DEFAULT_DATABASE_URL
)
const prismaInstance = new PrismaClient({
adapter,
log: process.env.NODE_ENV === 'development' ? ['error', 'warn'] : ['error'],
})
export const prisma = global.prisma || prismaInstance
if (process.env.NODE_ENV !== 'production') {
global.prisma = prisma
}
process.on('beforeExit', async () => {
await prisma.$disconnect()
})