Files
Artista-Filmcamp/src/lib/db.ts
T
Nick Szaunig 59bb5a38a3
Docker-Images bauen und veroeffentlichen / build-and-push (push) Failing after 1m32s
first commit
2026-09-27 06:06:56 +02:00

24 lines
963 B
TypeScript

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";