Files
kalendartool/lib/db/client.ts

23 lines
719 B
TypeScript

import { PrismaClient } from '@prisma/client';
/**
* Globaler Prisma-Client.
*
* In der Entwicklung startet Next.js bei Hot Reload mehrfach Modul-Instanzen;
* ohne Caching wuerde jede Instanz eigene Verbindungen aufbauen und die
* Datenbank mit Verbindungen ueberfluten. Daher wird die Instanz auf
* `globalThis` gecacht (offizielles Prisma-Rezept fuer Next.js).
*/
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined;
};
export const prisma: PrismaClient =
globalForPrisma.prisma ??
new PrismaClient({
log: process.env.NODE_ENV === 'development' ? ['warn', 'error'] : ['error'],
});
if (process.env.NODE_ENV !== 'production') {
globalForPrisma.prisma = prisma;
}