ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SQLFluff 入门指南:10 分钟看懂目录结构、命令入口与配置三件套

SQLFluff 入门指南:10 分钟看懂目录结构、命令入口与配置三件套 SQLFluff 入门指南10 分钟看懂目录结构、命令入口与配置三件套【免费下载链接】sqlfluffA modular SQL linter and auto-formatter with support for multiple dialects and templated code.项目地址: https://gitcode.com/GitHub_Trending/sq/sqlfluffSQLFluff 是一款模块化 SQL 检查与自动格式化工具支持 20 多种方言和模板代码。这篇 SQLFluff 入门带你走三站目录结构怎么分工、sqlfluff命令怎么跑起来、三个配置文件各管什么看完就能动手 lint 你的第一条 SQL。先扫一眼 SQLFluff 目录结构谁是大头谁是配角克隆仓库后你会看到这样的布局只标了关键分支sqlfluff/ ├── src/sqlfluff/ # 核心代码全部发动机都在这 │ ├── cli/ # 命令行入口sqlfluff 命令的出生地 │ ├── core/ # 引擎房解析器、linter、配置、插件机制 │ ├── dialects/ # 20 方言的语法定义ansi、postgres、snowflake…… │ ├── rules/ # 标准规则库按布局/引用/大小写等分类 │ ├── api/ # 面向 Python 的 lint/fix/parse 接口 │ └── utils/ # 辅助工具与 reflow 排版算法 ├── plugins/ # 插件包dbt 与 sqlmesh 模板器、示例插件 ├── sqlfluffrs/ # Rust 引擎加速版解析器和部分规则 ├── test/ # 测试用例与方言/规则 fixtures ├── docs/ docsv/ # 两套文档Sphinx 版与新版站点 ├── examples/ # API 使用示例脚本 └── pyproject.toml # 项目元数据、依赖与命令入口一句话记住分工src/sqlfluff/core/ 是发动机读文件、切词、建语法树、跑规则全靠它src/sqlfluff/dialects/ 是各方言地图册每个文件对应一种 SQL 方言的语法src/sqlfluff/rules/ 是检查清单每条规则一个编号LT、CP、CV、ST……plugins/ 装的是外挂让 SQLFluff 看懂 dbt、sqlmesh 写的模板 SQLsqlfluffrs/、examples/、docs/ 属于进阶或旁路第一遍可以跳过 规则其实分两层core/rules/定义规则怎么写的框架src/sqlfluff/rules/ 下才是真正一条条生效的检查项。命令是怎么跑起来的SQLFluff cli 入口到 linter 的完整链路忘掉启动文件这种说法把它想成一条传送带。你敲下sqlfluff lint f.sql --dialect postgres接下来依次发生五件事找到命令。sqlfluff这个可执行程序是 pyproject.toml 里[project.scripts]声明的sqlfluff sqlfluff.cli.commands:cli。装包时 Python 就帮你生成了这个入口进入 cli 层。src/sqlfluff/cli/commands.py 里的cli是一个 click 命令组解析出你的子命令lint、fix、parse、dialects……和参数组装配置。FluffConfig把命令行参数、.sqlfluff文件、pyproject.toml里的设置合并成一份生效配置交给 Linter。src/sqlfluff/core/linter/ 里的Linter类是传动轴发现文件 → 渲染 Jinja 模板 → 词法分析 → 按方言语法建解析树 → 逐条规则检查输出结果。汇总违规项打印到终端或者用fix把修改直接写回文件打个比方cli 是方向盘core 是发动机dialects 是各方言的地图rules 是行车检查表。顺带两条岔路不想装命令python -m sqlfluff也能跑src/sqlfluff/main.py 不过是把同一个cli转发了一下想写 Python 脚本调用src/sqlfluff/api/ 提供lint、fix、parse函数底层走的是同一条链路配置文件各管一摊安装、测试、元数据很多旧教程会提到 setup.py但在这个仓库里你已经找不到它了——它的活被 pyproject.toml 完整接手所以现在真正在门口挂牌的是两个文件文件给谁看一句话职责pyproject.toml安装它的人项目元数据名字、版本 4.3.0、要求 Python ≥ 3.10、依赖清单、sqlfluff命令入口一管安装tox.ini写代码和 CI 的人定义测试矩阵Python 3.10–3.14 各跑一遍再叠加多个 dbt 版本环境一管测试setup.py——已退役职责并入 pyproject.toml⚙️ 注意区分这三个是管项目本身的 SQLFluff 配置文件而你自己日常要调的是.sqlfluffINI 格式放在项目根目录。方言、启用的规则、行宽都在这里改默认值则集中在 src/sqlfluff/core/default_config.cfg。上手一步从 0 到第一条 lint 结果 现在就动手。先拿代码git clone https://gitcode.com/GitHub_Trending/sq/sqlfluff cd sqlfluff pip install -e .随便写个test.sqlselect * from orders where order_date 2026-01-01然后跑这两条命令sqlfluff lint test.sql --dialect postgres sqlfluff fix test.sql --dialect postgres第一条会指出该给列起别名之类的问题第二条直接把文件改好。不想用 postgres 方言sqlfluff dialects能列出全部支持的方言换一个--dialect参数就行。目录、入口、配置都串起来了——现在你可以挑一个方言文件进 src/sqlfluff/dialects/ 翻翻语法是怎么定义的那会是下一篇 SQLFluff 教程最好的开头。【免费下载链接】sqlfluffA modular SQL linter and auto-formatter with support for multiple dialects and templated code.项目地址: https://gitcode.com/GitHub_Trending/sq/sqlfluff创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表