Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

data-table-postgres

PostgreSQL adapter for remix/data-table. Use this package when you want data-table APIs backed by pg.

Features

  • Native pg Integration: Works with pg Pool and PoolClient instances
  • Full data-table API Support: Queries, relations, writes, and transactions
  • Adapter-Owned Compiler: SQL compilation lives in this adapter, with optional shared pure helpers from data-table
  • Migration DDL Support: Compiles and executes DataMigrationOperation operations for remix/data-table/migrations
  • Postgres Capabilities Enabled By Default:
    • returning: true
    • savepoints: true
    • upsert: true
    • transactionalDdl: true
    • migrationLock: true

Installation

npm i remix pg

Usage

import { Pool } from 'pg'
import { createDatabase } from 'remix/data-table'
import { createPostgresDatabaseAdapter } from 'remix/data-table-postgres'

let pool = new Pool({
  connectionString: process.env.DATABASE_URL,
})

let db = createDatabase(createPostgresDatabaseAdapter(pool))

Use db.query(...), relation loading, and transactions from remix/data-table. Import any driver-specific types you need directly from pg.

Adapter Capabilities

data-table-postgres reports this capability set by default:

  • returning: true
  • savepoints: true
  • upsert: true
  • transactionalDdl: true
  • migrationLock: true

Advanced Usage

Transaction Options

Transaction options are passed through to the adapter as hints.

await db.transaction(async (txDb) => txDb.exec('select 1'), {
  isolationLevel: 'serializable',
  readOnly: false,
})

Capability Overrides For Testing

You can override capabilities to verify fallback paths in tests.

import { createPostgresDatabaseAdapter } from 'remix/data-table-postgres'

let adapter = createPostgresDatabaseAdapter(pool, {
  capabilities: {
    returning: false,
  },
})

Related Packages

License

See LICENSE