This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// src/lib/prisma.ts
|
||||
// ✅ CORRECCIÓN: Validación de DATABASE_URL + configuración del pool de conexiones
|
||||
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
import { Pool } from 'pg';
|
||||
import { PrismaPg } from '@prisma/adapter-pg';
|
||||
|
||||
const globalForPrisma = global as unknown as { prisma: PrismaClient };
|
||||
|
||||
const connectionString = process.env.DATABASE_URL;
|
||||
|
||||
if (!connectionString) {
|
||||
throw new Error(
|
||||
"❌ DATABASE_URL is not defined. " +
|
||||
"Make sure it's set in your .env file or Docker environment variables. " +
|
||||
"Example: DATABASE_URL=postgresql://user:password@db:5432/flux"
|
||||
);
|
||||
}
|
||||
|
||||
const pool = new Pool({
|
||||
connectionString,
|
||||
max: 10, // Máximo de conexiones simultáneas
|
||||
idleTimeoutMillis: 30000, // Cerrar conexiones inactivas después de 30s
|
||||
connectionTimeoutMillis: 5000, // Timeout al intentar conectar
|
||||
});
|
||||
|
||||
const adapter = new PrismaPg(pool as any);
|
||||
|
||||
export const prisma = globalForPrisma.prisma || new PrismaClient({ adapter });
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
|
||||
Reference in New Issue
Block a user