From ab2c916fa562fbd24ddb7d754bd7361b9d1d2caf Mon Sep 17 00:00:00 2001 From: vidane Date: Sat, 2 May 2026 18:03:33 -0400 Subject: [PATCH] Add src/server/db/index.ts --- src/server/db/index.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/server/db/index.ts diff --git a/src/server/db/index.ts b/src/server/db/index.ts new file mode 100644 index 0000000..d667de4 --- /dev/null +++ b/src/server/db/index.ts @@ -0,0 +1,29 @@ +import { drizzle } from 'drizzle-orm/node-postgres'; +import { Pool } from 'pg'; +import * as schema from './schema'; + +// Create a singleton pool +let pool: Pool | null = null; + +export function getPool(): Pool { + if (!pool) { + const connectionString = process.env.DATABASE_URL || 'postgresql://vixtix:vixtix_secret@localhost:5433/vixtix'; + pool = new Pool({ + connectionString, + max: 20, + idleTimeoutMillis: 30000, + connectionTimeoutMillis: 2000, + }); + } + return pool; +} + +export function getDb() { + return drizzle(getPool(), { schema }); +} + +// Graceful shutdown +process.on('SIGINT', () => { + if (pool) pool.end(); + process.exit(0); +});