

Drizzle is a TypeScript ORM built around the idea that the query layer should not hide SQL. Schema is declared in TypeScript, queries are written with a chainable API that maps closely to SQL clauses, and the generated types flow from the schema definition rather than from a separate code generator pass.
Migrations are produced by diffing the declared schema against the previous state. The tool emits plain SQL files, which means a migration can be read and edited before it runs. That is a deliberate contrast with ORMs that generate opaque migration steps, and it makes review of schema changes part of the normal pull request.
The library supports Postgres, MySQL, SQLite, and the serverless variants of each, and it runs in edge runtimes because it has no dependency on Node-specific APIs. Teams that want an ORM but dislike losing the ability to reason about the emitted SQL tend to land here; teams that want a fully abstracted data layer with a large ecosystem of plugins may prefer a heavier framework.
Drizzle's design choice is restraint: it adds types and a query builder, and otherwise stays out of the way of SQL.
Schema is declared in TypeScript. A table definition names its columns, types, constraints, and relations, and the query builder derives its types from that declaration. There is no separate model layer to keep in sync and no decorator metadata to configure.
Queries read as a chain of SQL clauses. A select names the columns, a join names the condition, and a where clause takes an expression. Because the builder maps closely to SQL, the generated statement is usually predictable from the code, and the escape hatch to raw SQL is available where the builder does not cover a construct.
Migrations come from a schema diff. The tool compares the declared schema to the last known state and writes a SQL file for the change. Because the output is plain SQL, it can be reviewed, reordered, or hand-edited before it runs, which is what makes schema changes reviewable in the same way as application code.
Types flow from the TypeScript schema declaration, so there is no separate generation step to keep in sync.
Queries map closely to SQL clauses, so the emitted statement is predictable from the code that builds it.
Schema diffs are emitted as plain SQL files that can be reviewed and edited before they run.
The library avoids Node-specific APIs, so it runs in serverless and edge runtimes as well as a standard server.
Choose Drizzle when the team is comfortable with SQL and wants types and migrations without giving up the ability to read the emitted statements.
Look elsewhere if the team wants a data layer that abstracts the database entirely, or needs a large ecosystem of plugins and a long-established enterprise support story.
Schema and first query in an afternoon; migrations are where the care is needed.
Declare a table, generate types from it, and query. No code generation step to wire up.
Open source under Apache 2.0. Only the database costs money.
A TypeScript project and a database to connect to.
Constraints confirmed from the library's documentation.
It adds types and a query builder and otherwise stays out of the way, which suits a team that already reasons in SQL.
The differentiator is that the emitted statement is predictable from the code. Migrations come out as plain SQL files that can be reviewed in a pull request.
If you want the database fully abstracted, or you need a large plugin ecosystem, a heavier ORM is the better fit.
Drizzle is a TypeScript ORM whose query builder mirrors SQL and whose types are derived from a schema declared in TypeScript.
Yes. Drizzle is open source under the Apache 2.0 license, so there is no licence cost for the library.
It diffs the declared schema against the previous state and emits plain SQL migration files that can be reviewed and edited.
Yes. It avoids Node-specific APIs, so it runs in serverless and edge runtimes as well as a standard server.
CompassPad records Drizzle as a TypeScript library with a Node.js CLI for migration generation, based on its public repository.
The marketing site resolved and the primary product link reached the application.
The library is open source and free to use; there is no paid pricing page for the ORM itself.
Documentation is public and covers schema declaration, queries, and migrations.
A dated release notes page is published and reachable without an account.
No comments yet. Be the first.
Join the conversation. Sign up to comment.
Sign up free