Pre-commit hook跳过指定目录文件:SQLFLUFF lint无文件检查问题
解决SQLFluff pre-commit钩子跳过指定目录SQL文件的问题
可能原因及对应解决方案:
- 钩子未配置文件匹配规则
默认情况下,sqlfluff-lint钩子可能仅匹配仓库根目录下的.sql文件,需要在你的pre-commit-config.yaml的hook中添加files字段,明确指定要检查的路径:
repos: - repo: https://github.com/sqlfluff/sqlfluff rev: 2.1.3 hooks: - id: sqlfluff-lint verbose: true files: ^models/market/.*\.sql$ # 添加这一行 additional_dependencies: [ 'dbt-bigquery==1.5.1', 'sqlfluff-templater-dbt==2.1.3' ]
- 命令参数未指定具体文件
pre-commit run --files接受具体文件路径或通配符,直接传入目录可能无法触发递归检查。尝试改用通配符指定文件:
# 匹配目录下所有.sql文件(bash环境) pre-commit run --files models/market/*.sql # 递归匹配子目录下的.sql文件(zsh/bash需开启globstar) pre-commit run --files models/market/**/*.sql
- 验证sqlfluff独立运行状态
先跳过pre-commit,直接用sqlfluff命令检查目标目录,确认sqlfluff本身能识别文件:
sqlfluff lint models/market/
如果此命令也无法检测到文件,检查你的.sqlfluff配置文件,确认没有意外的exclude规则,且templater配置(dbt)正确指向了models目录。
- 检查pre-commit缓存状态
清理pre-commit缓存,避免旧规则影响:
pre-commit clean
内容的提问来源于stack exchange,提问作者Masoud
相关产品推荐
相关产品推荐

