From 13f53badc3bba43a88c29347b11751987d20dc23 Mon Sep 17 00:00:00 2001 From: jason Date: Thu, 12 Mar 2026 20:27:11 -0500 Subject: [PATCH] again? --- Dockerfile | 2 +- next.config.mjs | 9 ++++++++- prisma/schema.prisma | 2 +- src/lib/prisma.ts | 15 +++++++++------ 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3531bab..43c258f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ COPY . . # Generate Prisma Client (with SQLite) ENV DATABASE_URL="file:/app/data/dev.db" -ENV PRISMA_CLIENT_ENGINE_TYPE=binary +ENV PRISMA_CLIENT_ENGINE_TYPE=library RUN npx prisma generate # Disable telemetry during build diff --git a/next.config.mjs b/next.config.mjs index 9804c48..385b611 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,8 +1,15 @@ /** @type {import("next").NextConfig} */ -console.log("Loading next.config.mjs with serverExternalPackages"); const nextConfig = { output: "standalone", serverExternalPackages: ["@prisma/client", "prisma"], + webpack: (config, { isServer }) => { + if (isServer) { + // Ensure Prisma is never bundled by webpack + const existingExternals = Array.isArray(config.externals) ? config.externals : []; + config.externals = [...existingExternals, '@prisma/client', 'prisma']; + } + return config; + }, }; export default nextConfig; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index f8a9635..4029126 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -3,7 +3,7 @@ generator client { provider = "prisma-client-js" - engineType = "binary" + engineType = "library" } datasource db { diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts index 30c4eb1..d7539d7 100644 --- a/src/lib/prisma.ts +++ b/src/lib/prisma.ts @@ -4,10 +4,13 @@ const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined } -export const prisma = - globalForPrisma.prisma ?? - new PrismaClient({ - log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'], - }) +function getPrisma(): PrismaClient { + if (!globalForPrisma.prisma) { + globalForPrisma.prisma = new PrismaClient({ + log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'], + }) + } + return globalForPrisma.prisma +} -if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma +export const prisma = getPrisma()