Remix
Remix

data-table-sqlite

SQLite adapter for remix/data-table. Use this package when you want data-table APIs backed by a synchronous SQLite client.

Features

  • Native Runtime SQLite Support: Works with Node's node:sqlite DatabaseSync, Bun's bun:sqlite Database, and compatible synchronous SQLite clients
  • 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
  • SQLite Capabilities Enabled By Default:
    • returning: true
    • savepoints: true
    • upsert: true
    • transactionalDdl: true
    • migrationLock: false

Installation

npm i remix

Usage

Node

import { DatabaseSync } from 'node:sqlite'
import { createDatabase } from 'remix/data-table'
import { createSqliteDatabaseAdapter } from 'remix/data-table-sqlite'

let sqlite = new DatabaseSync('app.db')
let db = createDatabase(createSqliteDatabaseAdapter(sqlite))

Bun

import { Database } from 'bun:sqlite'
import { createDatabase } from 'remix/data-table'
import { createSqliteDatabaseAdapter } from 'remix/data-table-sqlite'

let sqlite = new Database('app.db')
let db = createDatabase(createSqliteDatabaseAdapter(sqlite))

This is a good fit for local development, embedded deployments, and single-node services. Import any driver-specific types you need directly from your runtime's SQLite module.

Adapter Capabilities

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

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

Advanced Usage

In-Memory Database For Tests

import { DatabaseSync } from 'node:sqlite'
import { createDatabase } from 'remix/data-table'
import { createSqliteDatabaseAdapter } from 'remix/data-table-sqlite'

let sqlite = new DatabaseSync(':memory:')
let db = createDatabase(createSqliteDatabaseAdapter(sqlite))

Related Packages

License

See LICENSE