使用数据框架时,你必须 围绕它们 来构建项目,而不是 与它们一起 构建。
Drizzle ORM
Drizzle ORM 是一个没有“头”的、带“头”的 TypeScript ORM。🐲
Drizzle 是一个好朋友,在你需要时它会陪在你身边,而在你需要一些空间时它也不会打扰你。
它看起来和感觉起来都很简单,在你的项目进行到第 1000 天时依然表现出色,
让你按自己的方式做事,并且会在你需要时出现。
它是唯一同时提供 关系型 和 类 SQL 查询 API 的 ORM,
在访问关系数据时为你提供两全其美的体验。
Drizzle 轻量、高性能、类型安全、无乳糖、无麸质、清醒、灵活,并且从设计上就是 为无服务器环境而生。
Drizzle 不只是一个库,它是一种体验。🤩
无头 ORM?
首先,Drizzle 是一个库以及一组互补的可选工具。
ORM 代表 对象关系映射,开发者通常会把类似 Django 或 Spring 的工具称为 ORM。 我们确实认为这是一种基于传统命名方式的误解,我们把它们称为 数据框架。
Drizzle 让你按照自己想要的方式构建项目,而不会干扰你的项目或结构。
使用 Drizzle,你可以用 TypeScript 定义和管理数据库 schema,以类似 SQL 的方式 或关系化的方式访问数据,并利用可选工具 将你的开发体验 提升到极致。 🤯
为什么是类 SQL?
如果你会 SQL,你就会 Drizzle。
其他 ORM 和数据框架往往会偏离/抽象掉 SQL,
这会带来双重学习成本:既要懂 SQL,又要会框架的 API。
Drizzle 则相反。
我们拥抱 SQL,并将 Drizzle 构建为其核心即类 SQL 的形式,因此你几乎不需要
学习成本,就能访问 SQL 的全部能力。
我们提供你熟悉的 SQL 模式、查询、
自动迁移 和 还有一件事。 ✨
// 访问你的数据
await db
.select()
.from(countries)
.leftJoin(cities, eq(cities.countryId, countries.id))
.where(eq(countries.id, 10))为什么不是类 SQL?
我们一直在努力寻求一个完美平衡的解决方案,虽然类 SQL 确实覆盖了 100% 的需求,
但在某些常见场景下,你可以用一种更好的方式来查询数据。
我们为你构建了 Queries API,因此你可以用最方便、最高性能的方式从数据库中获取关系型嵌套数据,
并且无需再考虑连接和数据映射。
Drizzle 始终只输出恰好 1 条 SQL 查询。 你可以放心在无服务器数据库中使用它,永远不用担心性能或往返成本!
const result = await db.query.users.findMany({
with: {
posts: true
},
});无服务器?
最棒的部分就是没有多余部分。Drizzle 恰好 0 个依赖!

Drizzle ORM 按设计就具有特定方言支持、轻量、高性能且可无服务器部署。
我们花了很多时间,确保你能获得一流的 SQL 方言支持,包括 Postgres、MySQL 以及其他方言。
Drizzle 通过行业标准数据库驱动程序原生运行。我们支持所有主流的 PostgreSQL、MySQL、SQLite、SingleStore、MSSQL 或 CockroachDB 驱动,并且我们正在**非常快地**添加新的支持。
欢迎加入!
越来越多的公司正在生产环境中采用 Drizzle,在开发体验和性能方面都获得了巨大收益。
我们一直都在这里提供帮助,所以请随时联系我们。我们很乐意陪伴你开启 Drizzle 之旅!
我们拥有一个出色的 Discord 社区,并欢迎所有建设者加入我们的 Twitter。
现在就用 Drizzle 和你的 PostgreSQL、MySQL、SQLite、MSSQL 或 CockroachDB 数据库去构建一些很棒的东西吧。🚀
