Installation
Install Drizzle DuckDB and its peer dependency.
Package Installation
Using bun:
bun add @leonardovida-md/drizzle-neo-duckdb @duckdb/node-api
Using npm:
npm install @leonardovida-md/drizzle-neo-duckdb @duckdb/node-api
Using pnpm:
pnpm add @leonardovida-md/drizzle-neo-duckdb @duckdb/node-api
Using yarn:
yarn add @leonardovida-md/drizzle-neo-duckdb @duckdb/node-api
Recommended client version is @duckdb/node-api@1.4.4-r.1, which bundles DuckDB 1.4.4.
Requirements
- Node.js 18+ or Bun 1.0+
- Native module support (not available in browser/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 '@leonardovida-md/drizzle-neo-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