/** * 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() })