From 5caa284b3c2ab85cae3f7ab536c328bf61f40618 Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Tue, 31 Mar 2026 23:44:43 -0700 Subject: [PATCH] fix: add defensive checks to prisma.ts to prevent build failures --- src/lib/prisma.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts index c906801..b47fdda 100644 --- a/src/lib/prisma.ts +++ b/src/lib/prisma.ts @@ -1,8 +1,7 @@ import { PrismaClient } from '@prisma/client' -import dotenv from 'dotenv' // Load .env file if it exists -dotenv.config() +require('dotenv').config() const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined @@ -10,16 +9,24 @@ const globalForPrisma = globalThis as unknown as { // Detect database provider from environment (default to sqlite for local development) const databaseProvider = process.env.DATABASE_PROVIDER || 'sqlite' +const databaseUrl = process.env.DATABASE_URL // Create PrismaClient with appropriate adapter const createPrismaClient = () => { let client: PrismaClient if (databaseProvider === 'postgresql') { + // Validate DATABASE_URL is present for PostgreSQL + if (!databaseUrl) { + throw new Error( + 'DATABASE_URL environment variable is required when DATABASE_PROVIDER is set to postgresql. ' + + 'Current DATABASE_PROVIDER: ' + databaseProvider + ) + } + // Use PrismaPg adapter for PostgreSQL const { PrismaPg } = require('@prisma/adapter-pg') - const pg = require('pg') - const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL }) + const adapter = new PrismaPg({ connectionString: databaseUrl }) client = new PrismaClient({ adapter }) } else { // No adapter needed for SQLite