You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过代码或配置而非命令禁用DBT项目中的指定模型目录

解决方案

有两种无需修改命令即可让DBT忽略def/目录的方法,具体如下:

方法一:修改根目录的dbt_project.yml

在项目根目录的dbt_project.yml中,找到models配置块,针对def子目录添加全局禁用配置:

models:
  # 替换为你dbt_project.yml中定义的项目名称(name字段的值)
  my_dbt_project:
    # 全局启用所有模型(可选,默认即为true)
    +enabled: true
    # 单独禁用def目录下的所有模型
    def:
      +enabled: false

这种方式会直接将def/目录下的所有模型标记为禁用,执行dbt run --profiles-dir=. --select models/时会自动跳过该目录的内容。

方法二:在def/目录内添加配置文件

如果不想修改根目录的配置文件,可以在def/目录下新建一个dbt_project.yml文件,内容如下:

models:
  # 同样替换为你的项目名称
  my_dbt_project:
    def:
      +enabled: false

DBT会自动加载子目录中的配置文件,该配置会覆盖根目录的默认设置,实现仅禁用当前def/目录下的模型。

原理说明

+enabled: false是DBT的核心配置项,标记为false的模型会被排除在所有命令的执行范围之外,无论你使用--select models/这样的路径选择器还是其他选择方式,都不会触发这些模型的编译、运行或测试。

内容的提问来源于stack exchange,提问作者IamYourFaja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:42:43