import { CreateTableBuilder, Kysely, PostgresDialect, sql } from 'kysely'; import { type DB } from "./out/db"; import { Pool } from "pg"; import { env, WORKER_COUNT } from '../util'; export const db = new Kysely({ dialect: new PostgresDialect({ pool: new Pool({ connectionString: env.DATABASE_URL, max: Math.max(1, Math.floor(+env.DATABASE_POOL_MAX / WORKER_COUNT)) }), }) }); export function addDefaultColumns(ctb: CreateTableBuilder) { return ctb .addColumn("id", "bigint", (cb) => cb .generatedAlwaysAsIdentity() .primaryKey() ) .addColumn("created_at", "timestamptz", (cb) => cb .notNull() .defaultTo(sql`now()`) ) };