PostgreSQL adapter for remix/data-table.
Use this package when you want data-table APIs backed by pg.
- Native
pgIntegration: Works withpgPoolandPoolClientinstances - Full
data-tableAPI 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
DataMigrationOperationoperations forremix/data-table/migrations - Postgres Capabilities Enabled By Default:
returning: truesavepoints: trueupsert: truetransactionalDdl: truemigrationLock: true
npm i remix pgimport { 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.
data-table-postgres reports this capability set by default:
returning: truesavepoints: trueupsert: truetransactionalDdl: truemigrationLock: true
Transaction options are passed through to the adapter as hints.
await db.transaction(async (txDb) => txDb.exec('select 1'), {
isolationLevel: 'serializable',
readOnly: false,
})You can override capabilities to verify fallback paths in tests.
import { createPostgresDatabaseAdapter } from 'remix/data-table-postgres'
let adapter = createPostgresDatabaseAdapter(pool, {
capabilities: {
returning: false,
},
})data-table- Core query/relations APIdata-schema- Schema parsing and validationdata-table-mysql- MySQL adapterdata-table-sqlite- SQLite adapter
See LICENSE