From 2a3ae89f5e2122c9e6d781b42f97a782575a92c6 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Tue, 24 Feb 2026 22:48:29 -0600 Subject: [PATCH] refactor: replace global db declaration with a globalForDb object to prevent redeclaration issues in monorepos and improve connection management in development and production environments --- packages/server/src/db/index.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/server/src/db/index.ts b/packages/server/src/db/index.ts index fb2ea7ddc..0dad31fd1 100644 --- a/packages/server/src/db/index.ts +++ b/packages/server/src/db/index.ts @@ -9,22 +9,30 @@ export * from "./schema"; type Database = PostgresJsDatabase; -declare global { - var db: Database | undefined; -} +/** + * 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 { - if (!global.db) - global.db = drizzle(postgres(dbUrl), { + // En desarrollo reutilizamos conexión para evitar múltiples conexiones + if (!globalForDb.db) { + globalForDb.db = drizzle(postgres(dbUrl), { schema, }); + } - dbConnection = global.db; + dbConnection = globalForDb.db; } export const db: Database = dbConnection;