Registry / database / drizzle-databend

drizzle-databend

JSON →
library0.1.14jsnpmunverified

A Drizzle ORM driver for Databend, a cloud-native data warehouse. Current version 0.1.14, updated regularly (last release Oct 2024). Built on Drizzle's Postgres driver surface to leverage Databend's support for $1 positional parameters and double-quote identifier quoting. Uses databend-driver (NAPI-RS bindings) as the underlying client. Export types for DSN, config object, and explicit client connections; supports migrations, transactions (no savepoints), and Databend-specific column types (VARIANT, ARRAY, TUPLE, MAP, TIMESTAMP, DATE). Differentiates from generic Postgres drivers by providing native Databend type support and optimized connection pooling.

npm install drizzle-databend
INSTALL
IMPORT
SIG · DRIZZLE-DATABEND
D
drizzle-databend
databasejavascriptv0.1.14
harness data pending
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.

drizzle
import { drizzle } from 'drizzle-databend'
import drizzle from 'drizzle-databend'
drizzle is a named export, not default. The package does not have a default export.
migrate
import { migrate } from 'drizzle-databend'
Named export for running migrations. Same import style as drizzle.
databendVariant
import { databendVariant, databendArray, databendTuple, databendMap, databendTimestamp, databendDate } from 'drizzle-databend'
All Databend-specific column types are named exports. They complement pgTable from drizzle-orm/pg-core.
client
import { Client } from 'databend-driver'
import { Client } from 'drizzle-databend'
The underlying Client class is re-exported from databend-driver, not from drizzle-databend. To get the Client, import directly from 'databend-driver'.

Shows ESM import with TypeScript, async connection using DSN string, table definition with pg-table, and basic CRUD operations using Drizzle ORM with Databend.

import { drizzle } from 'drizzle-databend'; import { pgTable, integer, varchar, text } from 'drizzle-orm/pg-core'; import { eq } from 'drizzle-orm'; const users = pgTable('users', { id: integer('id').notNull(), name: varchar('name', { length: 256 }).notNull(), email: text('email'), }); // Connect with DSN string (async, pools with 4 connections) const db = await drizzle('databend://databend:databend@localhost:8000/default?sslmode=disable'); // Insert await db.insert(users).values({ id: 1, name: 'Alice', email: 'alice@example.com' }); // Select const rows = await db.select().from(users).where(eq(users.name, 'Alice')); console.log(rows);
Debug
Known issues
gotchaDatabend does not support savepoints; nested transactions use a rollback-only fallback.
fix
Avoid relying on savepoint functionality in transactions. Use single-level transactions only.
affects: >=0.0.1
gotchaThe databend-driver native module may have Node.js version compatibility issues; engine requirement is >=18.17.
fix
Ensure Node.js >= 18.17.0 is used. For platform-specific issues, check 'npm install databend-driver' builds the native binary correctly.
affects: >=0.0.1
gotchaWhen using explicit Client (sync, no pooling), drizzle() must be called with { client: conn } and NOT with a DSN string argument.
fix
Use 'drizzle({ client: conn })' with a previously created Client connection, not a DSN string.
affects: >=0.0.1
deprecatedThe 'pool' option in connection config may change in future versions; currently undocumented pool: false disables pooling.
fix
Review the documentation for latest pooling API; for now refer to the README for valid options.
affects: >=0.1.0
Errors
Common errors & fixes
Error: Cannot find module 'drizzle-databend'
Package not installed or missing peer dependencies (drizzle-orm and databend-driver).
fix
Run 'bun add drizzle-databend drizzle-orm databend-driver' or 'npm install drizzle-databend drizzle-orm databend-driver'
TypeError: drizzle is not a function
Importing 'drizzle' as default export instead of named export.
fix
Use 'import { drizzle } from 'drizzle-databend'' instead of 'import drizzle from 'drizzle-databend''
Error: Connection refused to host 'localhost' port 8000
Databend server not running or wrong host/port.
fix
Start a Databend instance: 'docker run -d --name databend --network host -e QUERY_DEFAULT_USER=databend -e QUERY_DEFAULT_PASSWORD=databend datafuselabs/databend'
Error: The 'Client' is not exposed from 'drizzle-databend'
Trying to import Client from 'drizzle-databend' instead of 'databend-driver'.
fix
Use 'import { Client } from 'databend-driver'' (not from drizzle-databend).
Upgrade
Version history
0.1.14latest on npm
Audit
Dependencies
databend-driverrequiredPeer dependency: underlying native client for Databend connections
drizzle-ormrequiredPeer dependency: core Drizzle ORM framework
Agent activity
11 hits · last 30 days
node
8
Resources
drizzle-databend — npm install drizzle-databend · libregistry