闲社服务运行正常AI智能体自动化平台
D

Drizzle ORM查询

技能标识:Drizzle

Build type-safe database queries with Drizzle ORM patterns.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
2
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

Drizzle ORM查询

模式定义

  • - 从模式文件中导出每个表 — 若表未导出,查询静默失败
  • 查询返回类型使用 $inferSelect,插入输入使用 $inferInsert — 两者不同(select 有默认值填充,insert 为可选值)
  • 在单独调用中定义 relations(),而非与表内联 — Drizzle 将模式与关系分离

查询语法陷阱

  • - 条件使用函数而非对象:where: eq(users.id, 5) 而非 where: { id: 5 } — Prisma 语法不适用
  • 使用 and() / or() 组合条件:where: and(eq(users.active, true), gt(users.age, 18))
  • 使用 with: 的关系查询用 db.query.users.findMany(),类 SQL 查询用 db.select().from(users) — 混用会导致类型错误

迁移

  • - drizzle-kit push 仅限开发环境(破坏性操作)— 生产环境需先执行 drizzle-kit generate 再执行 drizzle-kit migrate
  • 模式变更需要重新生成迁移文件 — 编辑生成的 SQL 会破坏迁移哈希
  • 在 drizzle.config.ts 中设置 strict: true 以在问题进入生产环境前捕获模式漂移

驱动特定

  • - PostgreSQL:使用 pgTable,从 drizzle-orm/pg-core 导入
  • MySQL:使用 mysqlTable,从 drizzle-orm/mysql-core 导入
  • SQLite:使用 sqliteTable,从 drizzle-orm/sqlite-core 导入
  • 跨驱动混用导入可编译通过,但运行时失败并显示晦涩错误

性能

  • - 将多查询操作包裹在 db.transaction(async (tx) => {}) 中 — Drizzle 不会自动批处理
  • 对重复执行的查询使用 .prepare() — 跳过查询构建开销
  • 为每个 findMany() / select() 添加 .limit() — 无默认限制意味着全表扫描

常见错误

  • - 忘记对查询使用 await 会返回 Promise 而非结果 — 若忽略返回值,TypeScript 不会捕获此问题
  • 必须使用 returning() 才能获取插入/更新的行 — 否则仅返回 { rowCount }
  • JSON 列:PostgreSQL 使用 jsonb(),MySQL 使用 json() — 函数错误会导致序列化错误

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 drizzle-1776420002 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 drizzle-1776420002 技能

通过命令行安装

skillhub install drizzle-1776420002

下载

⬇ 下载 Drizzle v1.0.0(免费)

文件大小: 1.69 KB | 发布时间: 2026-4-17 20:22

v1.0.0 最新 2026-4-17 20:22
Initial release
返回顶部