@remix-run/data-table-mysql
v0.3.0
Published
MySQL adapter for remix/data-table
Downloads
2,949
Readme
data-table-mysql
MySQL adapter for remix/data-table.
Use this package when you want data-table APIs backed by mysql2.
Features
- Native
mysql2Integration: Works withmysql2/promisePoolandPoolConnectioninstances - 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 - MySQL Capabilities Enabled By Default:
returning: falsesavepoints: trueupsert: truetransactionalDdl: falsemigrationLock: true
Installation
npm i remix mysql2Usage
import { createPool } from 'mysql2/promise'
import { createDatabase } from 'remix/data-table'
import { createMysqlDatabaseAdapter } from 'remix/data-table-mysql'
let pool = createPool(process.env.DATABASE_URL as string)
let db = createDatabase(createMysqlDatabaseAdapter(pool))Use db.query(...), relation loading, and transactions from remix/data-table.
Import any driver-specific types you need directly from mysql2/promise.
Adapter Capabilities
data-table-mysql reports this capability set by default:
returning: falsesavepoints: trueupsert: truetransactionalDdl: falsemigrationLock: true
Advanced Usage
returning On MySQL
MySQL does not natively support SQL RETURNING. In this adapter, using returning on write
operations throws DataTableQueryError.
Use write metadata (affectedRows, insertId) on MySQL, or switch adapters when returned rows
are required.
import { DataTableQueryError } from 'remix/data-table'
try {
await db
.query(Accounts)
.insert({ email: '[email protected]', status: 'active' }, { returning: ['id'] })
} catch (error) {
if (error instanceof DataTableQueryError) {
// insert() returning is not supported by this adapter
}
}Related Packages
data-table- Core query/relations APIdata-schema- Schema parsing and validationdata-table-postgres- PostgreSQL adapterdata-table-sqlite- SQLite adapter
License
See LICENSE
