This commit is contained in:
2026-05-03 17:01:46 +03:30
parent b5ad5420b2
commit 9c30295b4b
76 changed files with 7891 additions and 461 deletions

View File

@@ -4,10 +4,36 @@ const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined;
};
function getPrismaDatabaseUrl() {
const databaseUrl = process.env.DATABASE_URL;
if (!databaseUrl) {
return undefined;
}
const url = new URL(databaseUrl);
// In dev, Next can spin up multiple workers. Keep each Prisma pool small so
// the database is not exhausted by parallel hot-reload processes.
if (!url.searchParams.has("connection_limit")) {
url.searchParams.set("connection_limit", "5");
}
if (!url.searchParams.has("pool_timeout")) {
url.searchParams.set("pool_timeout", "20");
}
return url.toString();
}
export const db =
globalForPrisma.prisma ??
new PrismaClient({
log: process.env.NODE_ENV === "development" ? ["query", "error", "warn"] : ["error"],
log: ["error"],
datasources: {
db: {
url: getPrismaDatabaseUrl(),
},
},
});
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = db;
globalForPrisma.prisma = db;