Add src/server/db/index.ts
This commit is contained in:
29
src/server/db/index.ts
Normal file
29
src/server/db/index.ts
Normal file
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user