import { drizzle } from 'drizzle-orm/better-sqlite3';import Database from 'better-sqlite3';const sqlite = new Database('sqlite.db');const db = drizzle(sqlite);
import { drizzle } from 'drizzle-orm/better-sqlite3';import Database from 'better-sqlite3';const sqlite = new Database('sqlite.db');sqlite.pragma('journal_mode = WAL');const db = drizzle(sqlite);
WAL mode significantly improves write performance and allows concurrent reads during writes.
# Create local D1 databasenpx wrangler d1 create my-database# Run migrations locallynpx wrangler d1 migrations apply my-database --local# Start local dev servernpx wrangler dev
D1 is optimized for edge deployment. For local development or Node.js, use better-sqlite3 or libSQL instead.
import { drizzle } from 'drizzle-orm/better-sqlite3';import Database from 'better-sqlite3';const sqlite = new Database('sqlite.db');const db = drizzle(sqlite);
Recommended: libSQL (Turso)
Edge-optimized SQLite
Automatic replication
Global distribution
HTTP-based or embedded replicas
import { drizzle } from 'drizzle-orm/libsql';import { createClient } from '@libsql/client';const client = createClient({ url: process.env.TURSO_DATABASE_URL, authToken: process.env.TURSO_AUTH_TOKEN,});const db = drizzle(client);
Required: Cloudflare D1
Built into Cloudflare Workers
No installation needed
Global edge distribution
Integrated with Wrangler
import { drizzle } from 'drizzle-orm/d1';const db = drizzle(env.DB);
import { drizzle } from 'drizzle-orm/bun-sqlite';import { Database } from 'bun:sqlite';const sqlite = new Database('sqlite.db');const db = drizzle(sqlite);
import { drizzle } from 'drizzle-orm/sql-js';import initSqlJs from 'sql.js';const SQL = await initSqlJs();const sqlite = new SQL.Database();const db = drizzle(sqlite);
import os from 'os';import path from 'path';const dbPath = path.join(os.tmpdir(), 'temp.db');const sqlite = new Database(dbPath);const db = drizzle(sqlite);
import { drizzle } from 'drizzle-orm/better-sqlite3';import Database from 'better-sqlite3';const sqlite = new Database('sqlite.db');sqlite.pragma('foreign_keys = ON');const db = drizzle(sqlite);