import { dbUrl } from "@dokploy/server/db/constants"; import * as schema from "@dokploy/server/db/schema"; import { and, eq } from "drizzle-orm"; import { drizzle, type PostgresJsDatabase } from "drizzle-orm/postgres-js"; import postgres from "postgres"; export { and, eq }; type Database = PostgresJsDatabase; /** * Evita problemas de redeclaración global en monorepos. * No usamos `declare global`. */ const globalForDb = globalThis as unknown as { db?: Database; }; let dbConnection: Database; if (process.env.NODE_ENV === "production") { // En producción no usamos global cache dbConnection = drizzle(postgres(dbUrl), { schema, }); } else { // En desarrollo reutilizamos conexión para evitar múltiples conexiones if (!globalForDb.db) { globalForDb.db = drizzle(postgres(dbUrl), { schema, }); } dbConnection = globalForDb.db; } export const db: Database = dbConnection; export { dbUrl };