Repository navigation
fix: run a drizzle database over every driver it supports - #81
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
ℹ️ No critical issues. One small note inline.
Reviewed changes
I reviewed the whole PR: the Durable Object fix in src/execute.ts, the seven new Drizzle jobs in the driver matrix and its type-check cases, and the docs and skill updates.
- The Durable Object fix:
underneath()now takes.sqlfrom the client that the Drizzle session keeps, when that.sqlpassesisDurableObjectSql.DrizzleDatabase<…>inSqliteClientandSyncClientFor<"sqlite">also accepts{ sql }storage. I checked this against the source ofdrizzle-orm@0.45.4/durable-sqlite/session.js.SQLiteDOSessionstoresctx.storageasthis.client.transaction()passes that same session toSQLiteDOTransactionand runsclient.transactionSync(...), and a nested transaction goes throughsession.transactionagain. So.run()and.runSync()reachctx.storage.sqlboth on the database and inside its transactions. - New driver-matrix jobs: the new jobs are Neon over WebSocket and over HTTP, PGlite,
Bun.sql, PlanetScale,bun:sqliteand D1. The jobs with no Drizzle transaction (Neon HTTP and D1) skip S7.bun:sqliteuses only the database shape, asbetter-sqlite3already does. The D1 job reuses the S10 rule that the driver rounds BIGINT values. - Type-check cases: there are 48 new cases, one per pairing, including
DrizzleSqliteDODatabase & { $client: DurableObjectStorage }.Bun.sqlis accepted on all three dialects. - MySQL container setting: the MySQL 8.4 container now starts with
--max-connections=1000, because ps-http-sim keeps a connection open for each session. - Docs and skill: each database page's driver row and Drizzle section now lists every pairing and notes where Drizzle has no transactions. The skill now mentions a Drizzle database.
claude-opus-5-5 | 𝕏
colinhacks
force-pushed
the
drizzle-every-driver
branch
from
October 23, 2026 20:05
bd680b1 to
f9f90e1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

.run()already took a Drizzle database overpg, postgres.js,mysql2,better-sqlite3and libSQL, the five pairings the driver matrix tested. This tests every other driver Drizzle wraps that Reylo also takes, fixes the one that failed, and lists them all in the docs.The fix.
drizzle-orm/durable-sqlitekeeps the Durable Object's storage,ctx.storage, on its session, while Reylo runs onctx.storage.sql. So a Drizzle database over a Durable Object was a type error, and refused at run time..run()and.runSync()now take itssql, inside its synchronous transactions too.DrizzleDatabaseaccepts a{ sql }storage inSqliteClientandSyncClientFor<"sqlite">. A unit test covers it with the Durable Object fake the other tests use.The driver matrix gains seven Drizzle jobs, each with every scenario the plain driver runs:
neon-serverless)neon()over HTTP (neon-http)Bun.sql(Postgres)Bun.sqlplanetscale-serverless)bun:sqlite--max-connections=1000.Bun.sqlis accepted on every dialect, asBun.sqlitself is, since its client is Bun's oneSQLclass for the three adapters.Docs. Each database page's driver row and Drizzle section list every pairing, and say where Drizzle has no transactions (Neon's HTTP driver, D1). The agent skill now mentions a Drizzle database.
Checked locally: typecheck, the loader's tests, the docs site, and both driver-matrix gates, the containers included;
RESULTS.mdmatches the run row for row (4,524 rows over 64 jobs).