sqlfmt 项目安装和配置指南
1. 项目基础介绍和主要编程语言
项目名称: sqlfmt
项目简介: sqlfmt 是一个用于格式化 dbt SQL 文件的工具,类似于 Python 中的 black、Go 中的 gofmt 和 Rust 中的 rustfmt。它能够自动格式化 SQL 代码,使得团队协作更加容易,不再需要在代码审查中讨论代码风格问题。sqlfmt 处理速度快,支持 Jinja 模板,并且可以与多种工具集成,如 dbt、pre-commit、SQLFluff、VSCode 和 GitHub Actions。
主要编程语言: Python
2. 项目使用的关键技术和框架
- Python: 项目的主要编程语言,用于实现 SQL 格式化的逻辑。
- Jinja: 支持 Jinja 模板,能够格式化包含 Jinja 语法的 SQL 文件。
- dbt: 专为 dbt 项目设计,能够处理 dbt 项目中的 SQL 文件。
- pre-commit: 可以与 pre-commit 集成,自动在提交代码前进行格式化。
- SQLFluff: 可以与 SQLFluff 集成,提供更全面的 SQL 代码检查和格式化。
- VSCode: 提供 VSCode 插件,方便在编辑器中直接使用 sqlfmt。
- GitHub Actions: 支持在 GitHub Actions 中集成,实现 CI/CD 流程中的自动格式化。
3. 项目安装和配置的准备工作和详细安装步骤
准备工作
- Python 环境: 确保你的系统上已经安装了 Python 3.7 或更高版本。你可以通过运行
python --version或python3 --version来检查 Python 版本。 - pipx: 推荐使用
pipx来安装 sqlfmt,因为它能够自动管理虚拟环境。你可以通过以下命令安装pipx:python3 -m pip install --user pipx python3 -m pipx ensurepath - Git: 确保你已经安装了 Git,并且能够使用 Git 进行版本控制。
详细安装步骤
-
安装 sqlfmt
使用pipx安装 sqlfmt:pipx install shandy-sqlfmt如果你想同时安装支持 Jinja 格式化的额外功能,可以使用以下命令:
pipx install shandy-sqlfmt[jinjafmt] -
验证安装
安装完成后,你可以通过以下命令验证 sqlfmt 是否安装成功:sqlfmt --version -
初始化项目
在你的项目目录中,初始化 Git 仓库(如果还没有初始化):git init -
配置 sqlfmt
你可以在项目根目录下创建一个pyproject.toml文件,并在其中配置 sqlfmt 的选项。例如:[tool.sqlfmt] line_length = 88 exclude = ["target/**/*", "dbt_packages/**/*"] -
运行 sqlfmt
在项目根目录下运行以下命令,格式化所有.sql和.sql.jinja文件:sqlfmt .如果你想检查文件是否已经格式化,可以使用
--check选项:sqlfmt --check .如果你想查看格式化后的差异,可以使用
--diff选项:sqlfmt --diff . -
集成到 pre-commit
如果你使用pre-commit,可以在.pre-commit-config.yaml中添加以下配置:repos: - repo: https://github.com/tconbeer/sqlfmt rev: v0.10.0 hooks: - id: sqlfmt -
集成到 VSCode
如果你使用 VSCode,可以安装sqlfmt插件,并在设置中配置自动格式化选项。
通过以上步骤,你已经成功安装并配置了 sqlfmt,可以开始享受自动格式化 SQL 代码的便利了!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



