使用数据框架时,你必须围绕它们来构建项目,而不是与它们一起构建。
Drizzle ORM
Drizzle ORM 是一个有头脑的无头 TypeScript ORM。🐲
Drizzle 就像一位好朋友:在你需要的时候会陪伴你,在你想独处时也不会打扰你。
它看起来和用起来都很简单,在你项目的第 1000 天依然表现出色,
让你按自己的方式做事,并在你需要时始终存在。
它是唯一同时提供 关系型 和 类 SQL 查询 API 的 ORM,
在访问关系数据时为你提供两全其美的体验。
Drizzle 轻量、高性能、类型安全、无乳糖、无麸质、清醒、灵活,并且从设计上就支持 serverless。
Drizzle 不只是一个库,更是一种体验。🤩
无头 ORM?
首先,Drizzle 是一个库以及一组可选择启用的配套工具。
ORM 代表 对象关系映射,开发者通常会把类似 Django 或 Spring 的工具称为 ORM。 我们真心认为这是一种基于旧有命名方式的误解,因此我们称它们为 数据框架。
Drizzle 让你按照自己想要的方式构建项目,而不会干扰你的项目或项目结构。
使用 Drizzle,你可以在 TypeScript 中定义和管理数据库模式,以类似 SQL 的方式 或关系型方式访问数据,并利用可选择启用的工具 将你的开发体验推向 巅峰。🤯
为什么是类 SQL?
如果你了解 SQL,你就了解 Drizzle。
其他 ORM 和数据框架往往会偏离 SQL,或将你与 SQL 隔离开来,这会导致双重学习成本:既要了解 SQL,又要了解框架的 API。
Drizzle 则相反。
我们拥抱 SQL,并从核心上将 Drizzle 构建成类 SQL 的形式,因此你几乎不需要学习成本,就能获得 SQL 的全部能力。
我们带来了所有熟悉的 SQL schema、查询、自动迁移,以及**更多内容**。 ✨
// 访问你的数据
await db
.select()
.from(countries)
.leftJoin(cities, eq(cities.countryId, countries.id))
.where(eq(countries.id, 10))为什么不使用类似 SQL 的方式?
我们一直在努力追求一个完美平衡的解决方案,虽然类似 SQL 的方式确实能满足 100% 的需求,
但在某些常见场景中,你可以用更好的方式来查询数据。
我们为你构建了 查询 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,在 DX 和性能方面都体验到了巨大的收益。
我们始终会在这里提供帮助,所以请随时联系我们。我们很乐意在你的 Drizzle 之旅中协助你!
我们拥有一个出色的 Discord 社区,并欢迎所有开发者加入我们的 Twitter。
现在就用 Drizzle 和你的 PostgreSQL、MySQL、SQLite、MSSQL 或 CockroachDB 数据库去构建一些很棒的东西吧。🚀
