dbt 1.5.3无法检测到快照配置与文件的技术求助
dbt 1.5.3快照未被识别的排查方向
检查
snapshot-paths配置格式是否合规
确认dbt_project.yml中的snapshot-paths为列表格式,示例:snapshot-paths: - "snapshots"1.5.3版本可能对格式校验更严格,若写成字符串形式(
snapshot-paths: "snapshots")会导致配置失效,而1.5.2可能兼容了该错误格式。验证快照文件的命名与结构
- 文件名必须以
.sql结尾,无特殊字符或空格(确认snapshot_ppi.sql无拼写错误) - 文件内必须包含完整的
snapshot代码块,示例:
缺少{% snapshot snapshot_ppi %} {{ config( target_schema='snapshots', unique_key='id', strategy='timestamp', updated_at='updated_at' ) }} select * from {{ ref('stage_ppi') }} {% endsnapshot %}snapshot/endsnapshot标签的文件会被dbt判定为普通SQL文件,无法识别为快照。
- 文件名必须以
确认终端工作路径正确
执行dbt snapshot时,必须处于dbt项目根目录(即包含dbt_project.yml的目录),否则dbt无法读取配置中的快照路径。查看debug日志定位加载问题
执行dbt snapshot --debug,在日志中查找关于snapshot-paths的加载记录,确认dbt是否正确读取了配置路径,以及是否扫描到snapshot_ppi.sql文件。若日志中无相关文件的扫描记录,说明路径配置或文件位置存在问题。排查配置中的排除/禁用规则
检查dbt_project.yml是否存在全局exclude/select配置,或快照文件的config块中是否设置了enabled: false,这些规则会导致快照被排除执行。降级版本验证是否为版本bug
临时将dbt及Postgres插件降级至1.5.2,执行dbt snapshot。若此时快照能正常识别,说明大概率是1.5.3的版本问题,可进一步确认官方是否有相关修复或提交issue。检查文件权限
确保当前用户对snapshots/目录及其中的文件拥有读取权限,避免因权限不足导致dbt无法扫描到文件。
内容的提问来源于stack exchange,提问作者GoneAsync
相关产品推荐
相关产品推荐

