SuperAPI AI 工具集

drizzle-orm

测试与质量

查看项目

更新于 10-16 03:17

技能介绍

用途:为使用 Drizzle ORM 1.0、Relations v2 和 Relational Query Builder v2 的项目提供查询编写、审查与调试规范。

主要能力:约定用 defineRelations(schema, (relationBuilder) => ...) 定义关系,并把结果对象传给 drizzle(client, { relations });关系查询使用 db.query.table.findMany() 与 findFirst(),where 和 orderBy 采用对象形式。支持 one、many、through 关系助手,through 可直接暴露多对多目标表;支持 alias、optional: false 及关系级 where 预定义过滤(仅能过滤目标表列)。RQB v2 的 where 支持 AND、OR、NOT、列操作符、RAW 与关系过滤;columns 限制字段,with 加载嵌套关系,extras 添加逐行计算字段(聚合应改用核心查询或 db.$count)。SQL builder 用于动态 WHERE、聚合、显式 join 等场景,动态条件可构建数组后展开进 and(),ilike 前需转义 % 和 _。

使用方式:关系查询保持 v2 形态,仅在任务确有需要时添加兼容代码;事务前先确认客户端类型。

限制:drizzle-orm/neon-http 不支持 db.transaction(async (tx) => ...) 回调,需识别原子性缺口;neon-serverless 配合 WebSocket 或 Pool 支持 db.transaction(...)。RQB v2 的 where 不能直接传 SQL 辅助表达式。count() 运行时只返回一行,但在 noUncheckedIndexedAccess 下需安全读取首行。extras 不应用于聚合。具体类型错误、驱动限制与 API 细节需结合代码和包文档确认。