MigrationLedger over the package-owned pg Pool: ensure() creates the schema_migrations table (version text PRIMARY KEY, applied_at timestamptz NOT NULL DEFAULT now()) with idempotent DDL; record() inserts an applied migration with a parameterized, idempotent statement (ON CONFLICT DO NOTHING — a rerun never double-applies); has()/applied() read the ledger back in apply order. Re-exported from the driver boundary (src/index.ts) so no other package needs the pg driver to touch migration state.
27 lines
785 B
JSON
27 lines
785 B
JSON
{
|
|
"name": "@personal-blog/database-postgres",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "EPPP PostgreSQL database adapter package. The single workspace package allowed to import the pg driver and Kysely (E00-S03-T02); the migration ledger (E00-S03-T03) is implemented here; the migration runner (advisory lock, diagnostics) lands in later stories.",
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.json",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"kysely": "0.29.4",
|
|
"pg": "8.22.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/pg": "8.21.0"
|
|
},
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"import": "./dist/index.js"
|
|
}
|
|
}
|
|
}
|