Files
pn-new-crm/src/lib/db/index.ts

27 lines
665 B
TypeScript
Raw Normal View History

import { drizzle } from 'drizzle-orm/postgres-js';
import postgres from 'postgres';
import * as schema from './schema';
const connectionString = process.env.DATABASE_URL!;
// Connection pool for queries.
const queryClient = postgres(connectionString, {
max: 20,
idle_timeout: 20,
connect_timeout: 10,
});
export const db = drizzle(queryClient, {
schema,
logger: process.env.NODE_ENV === 'development',
});
/** Close the underlying connection pool. Used by the vitest teardown so
* the parent process can exit cleanly. */
export async function closeDb(): Promise<void> {
await queryClient.end({ timeout: 5 });
}
export type Database = typeof db;