sqlfmt 使用教程

sqlfmt 使用教程

sqlfmt sqlfmt formats your dbt SQL files so you don't have to 项目地址: https://gitcode.com/gh_mirrors/sql/sqlfmt

1. 项目介绍

sqlfmt 是一个用于格式化 dbt SQL 文件的自动格式化工具。它类似于 blackgofmtrustfmt,但专门用于 SQL 文件。sqlfmt 旨在提高团队协作效率,通过自动格式化 SQL 文件,减少代码审查中关于代码风格的讨论。它处理速度快,支持 Jinja 模板,并且可以轻松集成到现有的工作流程中,如 dbt、pre-commit、SQLFluff、VSCode 和 GitHub Actions。

2. 项目快速启动

安装

推荐使用 pipx 安装 sqlfmt,因为它会自动将 sqlfmt 安装到一个虚拟环境中:

pipx install shandy-sqlfmt

如果你想同时安装 black 来格式化 Jinja 代码,可以使用以下命令:

pipx install shandy-sqlfmt[jinjafmt]

使用

安装完成后,你可以通过以下命令来格式化当前目录及其子目录中的所有 .sql.sql.jinja 文件:

sqlfmt .

如果你想检查文件是否已经格式化,可以使用 --check 选项:

sqlfmt --check .

如果你想查看 sqlfmt 将进行的更改而不实际修改文件,可以使用 --diff 选项:

sqlfmt --diff .

3. 应用案例和最佳实践

在 dbt 项目中使用

sqlfmt 是为 dbt 项目设计的,因此在使用时只需要进行最少的配置。建议排除 targetdbt_packages 目录,以避免格式化这些目录中的文件。你可以在命令行中使用 --exclude 选项,或者在 pyproject.toml 文件中进行配置:

[tool.sqlfmt]
exclude=["target/**/*", "dbt_packages/**/*"]

与 pre-commit 集成

你可以将 sqlfmt 集成到 pre-commit 钩子中,以确保每次提交时自动格式化 SQL 文件。在 .pre-commit-config.yaml 文件中添加以下配置:

repos:
  - repo: https://github.com/tconbeer/sqlfmt
    rev: v0.10.0
    hooks:
      - id: sqlfmt

在 VSCode 中使用

你可以在 VSCode 中配置 sqlfmt 作为格式化工具。首先,安装 sqlfmt 并确保它在你的系统路径中。然后,在 VSCode 的设置中添加以下配置:

{
  "sqlfmt.executable": "sqlfmt",
  "sqlfmt.lineLength": 88
}

4. 典型生态项目

dbt

sqlfmt 是为 dbt 项目设计的,因此与 dbt 的集成非常紧密。它可以自动格式化 dbt 项目中的 SQL 文件,包括 Jinja 模板。

SQLFluff

虽然 sqlfmt 不是一个 linter,但你可以将它与 SQLFluff 结合使用,以获得更全面的 SQL 代码质量检查。

pre-commit

sqlfmt 可以与 pre-commit 集成,以确保每次提交时自动格式化 SQL 文件,从而保持代码库的一致性。

VSCode

通过在 VSCode 中配置 sqlfmt,你可以在编辑 SQL 文件时自动应用格式化,提高开发效率。

通过以上步骤,你可以快速上手并充分利用 sqlfmt 来提高你的 SQL 代码质量和团队协作效率。

sqlfmt sqlfmt formats your dbt SQL files so you don't have to 项目地址: https://gitcode.com/gh_mirrors/sql/sqlfmt

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马冶娆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值