Files
platform/apps/api/src/database/db.ts
T

26 lines
770 B
TypeScript

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<DB>({
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<any, any>) {
return ctb
.addColumn("id", "bigint", (cb) => cb
.generatedAlwaysAsIdentity()
.primaryKey()
)
.addColumn("created_at", "timestamptz", (cb) => cb
.notNull()
.defaultTo(sql`now()`)
)
};