推荐:sqlfmt——SQL自动格式化工具
项目介绍
sqlfmt
是一个灵感来源于编程语言格式化器如black
、gofmt
和rustfmt
的神器,但它是专为SQL设计的。这个强大的命令行工具可以自动格式化你的dbt SQL文件,帮助你专注于业务逻辑,而无需担心代码风格统一问题。它快速、直观且与Jinja模板兼容,无论你是Linux、macOS还是Windows用户,都能轻松上手。
项目技术分析
sqlfmt
不是通过解析AST(抽象语法树)来工作,而是通过对输入文件进行词法分析并跟踪影响格式化的少数关键令牌。这种方法使它运行速度快,维护简单,并能有效地扩展支持更多语句类型。目前,sqlfmt
支持select
、delete
、grant
、revoke
以及create function
等语句,未来计划扩展到更全面的DDL和DML。
项目及技术应用场景
- 团队协作提升 - 使用
sqlfmt
可消除关于代码风格的讨论,使团队合作更加顺畅。 - 提高效率 - 省去手动格式化的时间,专注核心业务开发。
- Jinja模板支持 - 它处理用户看到的代码,不需要理解模板渲染后的结果。
- 无缝集成 - 作为Python CLI工具,可以本地安装在任何操作系统上,也可以在CI/CD流程中使用,与dbt、pre-commit、SQLFluff、VSCode和GitHub Actions等工具完美配合。
项目特点
- 一键式风格统一 - 非配置化设计,让整个团队遵循同一编码风格。
- 高速处理 - 处理大量文件时速度极快,仅对改动过的文件进行操作。
- Jinja友好 - 能够正确处理Jinja模板中的SQL片段。
- 多平台兼容 - 兼容Linux、macOS和Windows系统。
尝试与安装
你可以直接访问sqlfmt.com尝试在线版本,或使用pipx
命令在Python环境中安装:
pipx install shandy-sqlfmt
若需安装额外支持Jinja的black
,可以执行:
pipx install shandy-sqlfmt[jinjafmt]
了解更多安装选项,参阅官方文档。
开始使用
在开始之前,请确保将文件添加至版本控制系统,以便于回滚可能由sqlfmt
引起的更改。要格式化当前目录及其子目录下的所有.sql
和.sql.jinja
文件,只需运行:
sqlfmt .
如果你想检查而不修改文件,可以使用--check
选项;想查看格式化差异,使用--diff
选项。
结论
sqlfmt
是一款旨在简化SQL格式化、增强团队协作的利器。其快速、易用、兼容广泛的特点使其成为SQL开发者的理想选择。马上尝试并体验一下sqlfmt
如何提升你的工作效率吧!要深入了解更多信息,包括详细的文档和各种整合方式,敬请访问docs.sqlfmt.com。