26 lines
770 B
TypeScript
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()`)
|
|
)
|
|
};
|