5 solution docs
Drizzle ORM solution docs
Typed SQL in TypeScript, no engine binary, and migrations you read as plain SQL.
Pick Drizzle ORM and all 5 land in docs/solutions/drizzle/, next to the rules and skills that reference them.
Every Drizzle ORM doc in the registry
Tags: atomicity · backfill · deployment · drizzle · expand-contract · inference · joins · migrations · n-plus-one · neon · performance · postgres · query-builder · schema · serverless · sql · transactions · types · typescript · zero-downtime
Adding a NOT NULL column to a table that already has rows
The one-line migration fails on any populated database. Split it into add-nullable, backfill in batches, and enforce: three migrations across two deploys.
drizzle · migrations · postgres · backfill
drizzle-kit generate or drizzle-kit push, and when each is safe
push diffs your schema straight onto the database with no file to review; generate writes SQL you commit. Use push only on a database you can throw away.
drizzle · migrations · postgres · schema
db.query relations or an explicit join: choosing in Drizzle without an N+1
The relational API returns nested objects and one round trip; the core builder returns flat rows and total control. Which to reach for, and the loop that quietly becomes N+1.
drizzle · sql · joins · performance
Transactions in Drizzle on serverless: what works over HTTP and what needs a socket
An interactive db.transaction() needs a real connection held open. On an HTTP driver it silently is not one. Here is what each driver supports and how to write atomic writes without holding a connection.
drizzle · transactions · serverless · neon
Typing partial selects and joins in Drizzle without writing the types by hand
$inferSelect describes the whole row, not the three columns you selected. Use the query builder's inferred types, Awaited<ReturnType<...>>, and helper types instead of hand-maintained interfaces.
drizzle · typescript · types · inference