Nov 29, 2023
修复
- 在使用 withReplica 特性时正确转发参数 (#1536)
- 修复了 selectDistinctOn 在多个列上无法工作的问题 (#1466)
新特性/助手
所有方言中所有查询构建器的详细 JSDoc
现在,您可以在开发和使用 JSDoc 时,在 IDE 中访问更多信息、提示、文档链接等。以前,我们仅为过滤表达式提供了这些,但现在您可以在 Drizzle 查询构建器的所有部分中看到它们。
SQL 中的聚合函数的新助手
请记住,聚合函数通常与 SELECT 语句的 GROUP BY 子句一起使用。
因此,如果您在一个查询中使用聚合函数和其他列进行选择,请务必使用 .groupBy
子句。
以下是使用 sql
模板的函数及其等效项的列表:
count
countDistinct
avg
avgDistinct
sum
sumDistinct
max
min
要获取更多信息,请查看文档:聚合助手
新包
Drizzle ESLint 插件
对于那些无法针对特定场景进行类型检查的情况,或者虽然可以但错误信息难以理解的情况,我们决定创建一个 ESLint 包,带有推荐的规则。该包旨在帮助开发人员在开发过程中处理关键场景。有关更多信息,您可以查看 docs。
安装
您可以为 IDE 安装这些包以支持 TypeScript
使用
创建一个 .eslintrc.yml
文件,将 drizzle
添加到 plugins
中,并指定您要使用的规则。您可以在下面找到所有现有规则的列表:
所有配置
此插件导出了一个包含所有规则的完整配置(不包括已弃用的规则)。
目前,all
等效于 recommended
规则
enforce-delete-with-where: 强制在 .delete()
语句中与 the.where()
子句一起使用 delete
。大多数情况下,您不需要删除表中的所有行,而需要某种类型的 WHERE
语句。
错误信息:
您可以选择在插件选项中定义一个 drizzleObjectName
,该选项接受 string
或 string[]
。这在您有对象或类的删除方法不是来自 Drizzle 的情况下是有用的。这种 delete
方法将触发 ESLint 规则。为此,您可以定义在代码库中使用的 Drizzle 对象的名称(例如 db),这样规则仅在 delete 方法来自该对象时触发:
示例,配置 1:
示例,配置 2:
enforce-update-with-where: 强制在 .update()
语句中与 the.where()
子句一起使用 update
。大多数情况下,您不需要更新表中的所有行,而需要某种类型的 WHERE
语句。
错误信息:
您可以选择在插件选项中定义一个 drizzleObjectName
,该选项接受 string
或 string[]
。这在您有对象或类的更新方法不是来自 Drizzle 的情况下是有用的。这种 update
方法将触发 ESLint 规则。为此,您可以定义在代码库中使用的 Drizzle 对象的名称(例如 db),这样规则仅在 update 方法来自该对象时触发:
示例,配置 1:
示例,配置 2: