src/server/db.ts
此代码来自构建时的仓库快照。修改源码后重新构建即可更新。
import 'server-only';
import { PrismaPg } from '@prisma/adapter-pg';
import { PrismaClient } from '@/generated/prisma/client';
const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient };
export function getDb() {
if (globalForPrisma.prisma) return globalForPrisma.prisma;
const connectionString = process.env.DATABASE_URL;
if (!connectionString) throw new Error('请配置 DATABASE_URL');
// Prisma 类似带类型的数据库访问层;连接池复用连接,避免每次请求都建立新连接。
// 开发热更新会重新加载模块,因此将实例放在服务端全局,防止连接越积越多。
const db = new PrismaClient({
adapter: new PrismaPg({
connectionString,
connectionTimeoutMillis: 5000,
max: 5,
}),
});
globalForPrisma.prisma = db;
return db;
}