@forinda/kickjs-db-pg
v5.2.0
Published
node-postgres adapter for @forinda/kickjs-db — MigrationAdapter + Kysely PostgresDialect
Downloads
176
Maintainers
Readme
@forinda/kickjs-db-pg
PostgreSQL adapter for
@forinda/kickjs-db.
Two factories:
pgDialect({ pool })— query-layer dialect forcreateDbClient({ dialect }).pgAdapter({ pool })—MigrationAdapterforkick db migrate+kickDbAdapterboot-time apply.
Both consume a pg-protocol-compatible pool (pg.Pool, @neondatabase/serverless's Pool, etc.) — adopters pick whichever runtime fits.
Install
pnpm add @forinda/kickjs-db @forinda/kickjs-db-pg pgUsage
import { Pool } from 'pg'
import { createDbClient, kickDbAdapter } from '@forinda/kickjs-db'
import { pgAdapter, pgDialect } from '@forinda/kickjs-db-pg'
import { bootstrap } from '@forinda/kickjs'
import * as schema from './db/schema'
const pool = new Pool({ connectionString: process.env.DATABASE_URL })
export const db = createDbClient({
schema,
dialect: pgDialect({ pool }),
events: true,
})
const migrationAdapter = pgAdapter({ pool })
export const app = await bootstrap({
modules,
adapters: [
kickDbAdapter({
migrationAdapter,
migrationsDir: 'db/migrations',
migrationsOnBoot: process.env.NODE_ENV === 'development' ? 'apply' : 'fail-if-pending',
}),
],
})The pool is shared between the migration adapter (used by the CLI for kick db migrate latest and similar) and the query client (used by repositories). One pool, no duplicate connections.
Docs
License
MIT © Felix Orinda
