Installation
Install Drizzle DuckDB and its peer dependencies, drizzle-orm and @duckdb/node-api.
Install
@duckdbfan/drizzle-duckdb.
Package Installation
Using bun:
bun add @duckdbfan/drizzle-duckdb drizzle-orm @duckdb/node-api
Using npm:
npm install @duckdbfan/drizzle-duckdb drizzle-orm @duckdb/node-api
Using pnpm:
pnpm add @duckdbfan/drizzle-duckdb drizzle-orm @duckdb/node-api
Using yarn:
yarn add @duckdbfan/drizzle-duckdb drizzle-orm @duckdb/node-api
Peer Dependencies
drizzle-orm: version 0.40.1 or newer, below 0.46.0.@duckdb/node-api: version 1.4.4 or newer, below 1.6.0. The-r.Nrelease builds in that range, such as1.4.4-r.1and1.5.6-r.1, also match. The repository develops and tests against1.5.6-r.1.
Requirements
- Node.js 18.17 or newer. Node.js 22 or 24 is recommended.
- Bun 1.0 or newer also works.
- Native module support. The DuckDB client does not run in browser or edge environments.
TypeScript Configuration
If using TypeScript, ensure your tsconfig.json includes:
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"esModuleInterop": true
}
}
Verify Installation
Create a test file to verify everything works:
// test.ts
import { DuckDBInstance } from '@duckdb/node-api';
import { drizzle } from '@duckdbfan/drizzle-duckdb';
import { sql } from 'drizzle-orm';
async function test() {
const instance = await DuckDBInstance.create(':memory:');
const connection = await instance.connect();
const db = drizzle(connection);
const result = await db.execute(sql`SELECT 'Hello, DuckDB!' as message`);
console.log(result[0].message); // Hello, DuckDB!
connection.closeSync();
}
test();
Run it:
bun test.ts
# or
npx tsx test.ts
Optional: Drizzle Kit
For migrations, you can also install Drizzle Kit:
bun add -d drizzle-kit
See Migrations for setup details.
Next Steps
- Quick Start: create your first schema and queries
- Database Connection: connection patterns and options