This commit is contained in:
commit
59bb5a38a3
132 files changed
+19435
No files matched your search
@@ -0,0 +1,23 @@
|
||||
import { PrismaPg } from "@prisma/adapter-pg";
|
||||
import { PrismaClient } from "@/generated/prisma/client";
|
||||
|
||||
export type Db = PrismaClient;
|
||||
/** Transaktions-Client innerhalb von db.$transaction(async (tx) => …). */
|
||||
export type Tx = Parameters<Parameters<PrismaClient["$transaction"]>[0]>[0];
|
||||
|
||||
const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient };
|
||||
|
||||
function createClient(): PrismaClient {
|
||||
const connectionString = process.env.DATABASE_URL;
|
||||
if (!connectionString) throw new Error("DATABASE_URL ist nicht gesetzt.");
|
||||
const adapter = new PrismaPg({ connectionString, max: Number(process.env.DATABASE_POOL_SIZE ?? 10) });
|
||||
return new PrismaClient({ adapter, log: ["error"] });
|
||||
}
|
||||
|
||||
/** Lazy, damit der Build (ohne Datenbank) Module importieren kann. */
|
||||
export function getDb(): PrismaClient {
|
||||
if (!globalForPrisma.prisma) globalForPrisma.prisma = createClient();
|
||||
return globalForPrisma.prisma;
|
||||
}
|
||||
|
||||
export const CAMP_ID = "modelcamp-2027";
|
||||
Reference in new issue
Block a user