dbt的--project-dir选项官方文档位置及功能问询
dbt
--project-dir 参数常见疑问解答 核心作用说明
--project-dir 是dbt的全局路径参数,不属于节点选择语法范畴,所以你在节点选择语法相关文档中找不到相关说明属于正常情况。
它的作用是显式指定dbt项目的根目录位置,与你理解的「覆盖指定目录下所有SQL文件运行」完全无关。
dbt默认会在你执行命令的当前工作目录下查找dbt_project.yml文件,以此作为项目根目录的标识。如果你执行命令的目录不是项目根目录,就需要通过--project-dir参数指定到包含dbt_project.yml的对应目录。
示例命令行为解释
你提到的dbt run --project-dir /home/dbt/my_project命令,执行逻辑如下:
- dbt首先前往
/home/dbt/my_project路径下查找dbt_project.yml配置文件 - 按照该配置文件的定义、以及你额外指定的节点筛选规则执行任务:如果你没有加
--select之类的筛选参数,默认会运行项目中所有已启用的模型,而非该目录下所有的*.sql文件
版本适配说明
你使用的0.18.1版本dbt已支持该参数,Docker环境和Windows环境下的参数作用完全一致。
相关注意事项
- 如果需要指定运行某个目录下的模型,需要搭配节点选择参数使用,例如
dbt run --select models/your_target_dir/ --project-dir仅负责定位项目根目录,不会对模型筛选逻辑产生任何影响- 如果你指定的路径下不存在
dbt_project.yml文件,dbt会直接报错终止,不会执行任何模型
内容的提问来源于stack exchange,提问作者Keith H
相关产品推荐
相关产品推荐

