Registry / database / fortune-postgres

fortune-postgres

JSON →
library1.6.11jsnpmunverified

A PostgreSQL adapter for Fortune.js that maps Fortune's data interface directly to SQL statements without ORM overhead. Supports non-destructive table setup, array foreign keys for performance, and optimized query building. Current stable version is 1.6.11, last updated in 2020 with sporadic maintenance. Requires PostgreSQL 9.4+. Unlike ORM-based adapters, it delegates foreign key enforcement to Fortune.js and avoids junction tables by using array columns. The adapter also exposes the underlying pg-pool for raw queries. Release cadence is low; no major changes expected.

database
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Package is CommonJS-only, no ESM exports. Use require().

const postgresAdapter = require('fortune-postgres')

Adapter must be passed as an array with options object as second element.

const store = fortune(schema, { adapter: [postgresAdapter, { url }] })

pool property exists, but consider it private. Use store.adapter.client alias.

store.adapter.pool

Shows how to set up Fortune.js with the Postgres adapter, define a simple schema, and perform create/find operations.

const fortune = require('fortune'); const postgresAdapter = require('fortune-postgres'); const store = fortune({ user: { name: { type: String }, posts: { link: 'post', inverse: 'author', isArray: true } }, post: { title: { type: String }, author: { link: 'user', inverse: 'posts' } } }, { adapter: [ postgresAdapter, { url: process.env.DATABASE_URL || 'postgres://postgres:password@localhost:5432/myapp', useForeignKeys: false } ] }); store.connect().then(() => { console.log('Connected to PostgreSQL'); return store.create('user', { name: 'Alice' }); }).then(user => { console.log('Created user:', user); return store.find('user', { query: { name: 'Alice' } }); }).then(users => { console.log('Found users:', users); store.disconnect(); }).catch(err => { console.error('Error:', err); store.disconnect(); });
Debug
Known footguns
breakingRequires Node >=10, older versions unsupported.
gotchaAdapter does not alter existing columns; schema changes require manual migration.
gotchaArray foreign keys are emulated (no database-level FK constraints); referential integrity is handled by Fortune only.
deprecatedDefault primary key generation uses base64-encoded random bytes, may conflict with some systems.
gotchaSSL must be explicitly enabled via URL query parameter or connection object.
Upgrade
Version history

Breaking-change detection hasn't run for this library yet.

Audit
Security & dependencies

CVE tracking and dependency tree are planned for a later release.

Agent activity
8 hits · last 30 days
gptbot
3
mj12bot
1
Resources