Sqlc: 2024 签到

主要观点:作者在 Go 栈中使用 sqlc 已近三年,有人询问是否仍认为这是正确方向,作者进行了回顾。
关键信息

  • 使用 sqlc 处理 app 中的所有数据库调用,有 101 个文件约 700 个查询,7800 行 SQL 和 34000 行生成的 Go 代码。
  • 生成代码速度快,在普通 MacBook Air 上不到 1 秒。
  • sqlc 的弱点是缺乏将动态代码放入查询的机制,导致列表端点和更新查询的代码较复杂,但大多数查询较好维护,且使用原生 SQL 有优势,能表达复杂查询且更不易出错。
    重要细节
  • 展示了不同文件中各种查询的代码示例,如DiscountItemGetByInvoiceID等。
  • 展示了SavedQueryGetPageClusterUpdate等复杂查询的代码。
  • 作者认为即使有近 8000 行 SQL,sqlc 的工具仍快速,日常使用体验出色,若使用其他方式可能已陷入不可持续的境地。

总体而言,作者对“sqlc 是否是正确选择”的答案是肯定的。

阅读 15
0 条评论