{"id":42624,"library":"deepbase-drizzle","title":"DeepBase Drizzle ORM Driver","description":"DeepBase-nested-object database driver for Drizzle ORM (v3.6.9, stable, weekly releases). Unlike dialect-specific drivers (deepbase-sqlite, deepbase-mysql), deepbase-drizzle works with any Drizzle-supported database (SQLite, PostgreSQL, MySQL, etc.) by accepting a Drizzle `db` instance. Automatically creates storage tables on connect. Maintains `seq` column for stable insertion order, supporting `shift()` and `pop()`. ESM-only, requires TypeScript 5+.","status":"active","version":"3.6.9","language":"javascript","source_language":"en","source_url":"https://github.com/clasen/DeepBase","tags":["javascript","deepbase","drizzle","drizzle-orm","driver","database","persist","nested","objects","typescript"],"install":[{"cmd":"npm install deepbase-drizzle","lang":"bash","label":"npm"},{"cmd":"yarn add deepbase-drizzle","lang":"bash","label":"yarn"},{"cmd":"pnpm add deepbase-drizzle","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core DeepBase runtime for nested-key operations; must match major version","package":"deepbase","optional":false}],"imports":[{"note":"ESM-only default export; CJS require() will fail with ERR_REQUIRE_ESM","wrong":"const DrizzleDriver = require('deepbase-drizzle')","symbol":"DrizzleDriver","correct":"import DrizzleDriver from 'deepbase-drizzle'"},{"note":"DeepBase is a default export, not named export","wrong":"import { DeepBase } from 'deepbase'","symbol":"DeepBase","correct":"import DeepBase from 'deepbase'"},{"note":"drizzle() must be imported from the dialect-specific subpath (better-sqlite3, node-postgres, mysql2, etc.)","wrong":"import { drizzle } from 'drizzle-orm'","symbol":"drizzle","correct":"import { drizzle } from 'drizzle-orm/better-sqlite3'"}],"quickstart":{"code":"import Database from 'better-sqlite3';\nimport { drizzle } from 'drizzle-orm/better-sqlite3';\nimport DeepBase from 'deepbase';\nimport DrizzleDriver from 'deepbase-drizzle';\n\nconst sqlite = new Database('app.db');\nconst db = drizzle({ client: sqlite });\n\nconst store = new DeepBase(\n  new DrizzleDriver({ db, client: sqlite, tableName: 'my_data' })\n);\nawait store.connect(); // auto-creates table\nawait store.set('user', 'alice', { age: 30, email: 'alice@example.com' });\nconst alice = await store.get('user', 'alice');\nconsole.log(alice); // { age: 30, email: 'alice@example.com' }\nconst keys = await store.keys('user');\nconsole.log(keys); // ['alice']\nawait store.close();\nsqlite.close();","lang":"typescript","description":"Creates a DeepBase store backed by SQLite via Drizzle ORM; sets and retrieves nested keys."},"warnings":[{"fix":"Use default import: `import DrizzleDriver from 'deepbase-drizzle'`","message":"v3 migration: DrizzleDriver v3 changed from named export to default export (was `import { DrizzleDriver } from 'deepbase-drizzle'`; now `import DrizzleDriver from 'deepbase-drizzle'`).","severity":"breaking","affected_versions":">=3.0.0 <3.6.9"},{"fix":"Replace `driver: myDriver` with `db: myDriver`","message":"The `driver` option in DrizzleDriver constructor is deprecated. Use `db` instead.","severity":"deprecated","affected_versions":">=3.0.0 <3.6.9"},{"fix":"Set `ensureTable: false` and create the table manually using the schema from the README.","message":"Table auto-creation may fail if the database user lacks CREATE TABLE privileges (e.g., read-only replicas).","severity":"gotcha","affected_versions":">=3.0.0"},{"fix":"If you need strict insertion ordering, use `store.set()` only for new keys or manually manage `seq`.","message":"Upsert behavior: inserting a key that already exists updates `value` but does NOT increment `seq`. This breaks FIFO order assumptions if you rely on `seq` for insertion order.","severity":"gotcha","affected_versions":">=3.0.0"},{"fix":"Ensure the factory returns an object with `{ db, client }` and that `client.close()` exists if you intend to use default disconnect logic.","message":"`reopen` factory must return an object with `db` (and optionally `client`). If `client` is returned but does not have a `.close()` method, the default disconnect will throw.","severity":"gotcha","affected_versions":">=3.0.0"}],"env_vars":null,"search_vec":"'5':71 'accept':44 'automat':49 'column':57 'connect':54 'creat':50 'databas':9,38,79 'db':47 'deepbas':1,6,24,27,30,73 'deepbase-drizzl':29 'deepbase-mysql':26 'deepbase-nested-object':5 'deepbase-sqlit':23 'dialect':20 'dialect-specif':19 'driver':4,10,22,78 'drizzl':2,12,31,36,46,74,76 'drizzle-orm':75 'drizzle-support':35 'esm':67 'esm-on':66 'etc':42 'insert':60 'instanc':48 'javascript':72 'maintain':55 'mysql':28,41 'nest':7,81 'object':8,82 'order':61 'orm':3,13,77 'persist':80 'pop':65 'postgresql':40 'releas':17 'requir':69 'seq':56 'shift':63 'specif':21 'sqlite':25,39 'stabl':15,59 'storag':51 'support':37,62 'tabl':52 'typescript':70,83 'unlik':18 'v3.6.9':14 'week':16 'work':32","created_at":"2026-06-05T16:55:53.420306+00:00","updated_at":"2026-06-05T16:55:53.420306+00:00","problems":[{"fix":"Use `import DrizzleDriver from 'deepbase-drizzle'` in an ESM context, or use dynamic `import()` in CJS.","cause":"Using CommonJS `require()` to import an ESM-only package","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module not supported"},{"fix":"Replace `import { drizzle } from 'drizzle-orm'` with `import { drizzle } from 'drizzle-orm/better-sqlite3'` (or your dialect).","cause":"Importing `drizzle` from the top-level `drizzle-orm` package instead of a dialect subpath","error":"TypeError: drizzle is not a function"},{"fix":"Either call `.connect()` (which auto-creates by default) or manually create the table using the schema: `CREATE TABLE deepbase_main (key TEXT PRIMARY KEY, value TEXT, seq INTEGER)`.","cause":"Table auto-creation is disabled or failed; default table name is `deepbase_main`","error":"Error: table \"deepbase_main\" does not exist"},{"fix":"Pass `{ db: myDrizzleInstance }` to the DrizzleDriver constructor.","cause":"Missing `db` in DrizzleDriver options","error":"TypeError: Cannot destructure property 'db' of 'undefined'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/clasen/DeepBase/tree/main/packages/driver-drizzle","github":"https://github.com/clasen/DeepBase","docs":null,"changelog":null,"pypi":null,"npm":"deepbase-drizzle","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}