Docker-Images bauen und veroeffentlichen / build-and-push (push) Failing after 1m32s
24 lines
963 B
TypeScript
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";
|