25 lines
637 B
TypeScript
25 lines
637 B
TypeScript
// src/db/index.ts
|
|
import 'dotenv/config';
|
|
import { relations } from './relations.ts';
|
|
import { drizzle } from "drizzle-orm/node-postgres";
|
|
import { Pool } from "pg";
|
|
|
|
const pool = new Pool({
|
|
connectionString: process.env.DATABASE_URL,
|
|
max: 10,
|
|
idleTimeoutMillis: 30000,
|
|
connectionTimeoutMillis: 2000,
|
|
});
|
|
|
|
// Handle pool errors to prevent connection corruption
|
|
pool.on('error', (err) => {
|
|
console.error('Unexpected error on idle client', err);
|
|
});
|
|
|
|
export const db = drizzle({ client: pool, relations: relations, casing: 'snake_case' });
|
|
export type DBInstance = typeof db;
|
|
|
|
export const ClosePool = () => {
|
|
pool.end();
|
|
}
|