使用数据框架,你必须围绕它们构建项目,而不是用它们构建项目。
Drizzle ORM
Drizzle ORM 是一个无头 TypeScript ORM,但有头。🐲
Drizzle 就像你的好朋友,在你需要时随时为你效劳,在你需要空间时也不会打扰你。
它外观简洁,在项目的第 1000 天即可运行,让你按照自己的方式操作,并在你需要时随时可用。
它是唯一同时具有 relational 和 类 SQL 查询 API 的 ORM,在访问关系数据时为你提供两全其美的解决方案。Drizzle 轻量级、高性能、类型安全、不含乳糖、不含麸质、简洁、灵活,并且设计精良,支持无服务器。Drizzle 不仅仅是一个库,更是一种体验。🤩
无头 ORM?
首先,Drizzle 是一个库,也是一个互补的选择加入工具的集合。
ORM 代表对象关系映射,开发者通常将类似 Django 或 Spring 的工具称为 ORM。我们坚信这是基于传统命名法的误解,我们称之为数据框架。
Drizzle 让你可以按照自己的方式构建项目,而不会干扰你的项目或结构。
使用 Drizzle,你可以在 TypeScript 中定义和管理数据库模式,以类似 SQL 或关系型数据库的方式访问数据,并利用可选工具来提升你的开发体验。🤯
为什么像 SQL 那样?
如果你懂 SQL,你就懂 Drizzle。
其他 ORM 和数据框架往往会偏离/抽象 SQL,导致双重学习曲线:需要同时了解 SQL 和框架的 API。
Drizzle 则相反。我们拥抱 SQL,并将 Drizzle 构建为类似于 SQL 的核心,因此你可以零学习曲线或无需学习即可使用 SQL 的全部功能。
我们引入了所有你熟悉的 SQL 模式、queries、自动迁移 和 还有一件事。✨
// Access your data
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 完全没有依赖!
Drizzle ORM 专为方言设计,轻量、高性能且支持无服务器。
我们花费了大量时间来确保你拥有一流的 SQL 方言支持,包括 Postgres、MySQL 和其他语言。
Drizzle 通过行业标准的数据库驱动程序原生运行。我们支持所有主要的 PostgreSQL、MySQL、SQLite 或 SingleStore 驱动程序,并且正在添加新的 非常快 驱动程序。
欢迎加入!
越来越多的公司在生产环境中采用 Drizzle,并在数据可视化 (DX) 和性能方面获得了巨大的提升。
我们随时准备为你提供帮助,请随时联系我们。我们很乐意在你的 Drizzle 之旅中为你提供帮助!
我们拥有出色的 Discord 社区,并欢迎所有构建者加入我们的 Twitter。
现在,使用 Drizzle 和你的 PostgreSQL、MySQL 或 SQLite 数据库来构建一些很棒的功能吧。🚀