DBT Core 1.4.7修改模型时自定义Schema被忽略问题咨询
问题分析与解决
这是DBT Core 1.4.x版本的已知缓存机制问题,并非你的操作错误。
问题原因
DBT 1.4.x对项目配置(dbt_project.yml)的缓存逻辑存在缺陷:当你修改现有模型后执行dbt run时,dbt没有重新读取dbt_project.yml中配置的自定义Schema/Database,而是复用了之前缓存的profiles.yml默认Target配置,导致模型被创建到默认位置。
可用解决方案
- 强制更新缓存:执行
dbt run --target dev,该命令会强制dbt重新加载项目配置并更新缓存,后续不指定Target运行也会正常生效。 - 触发配置重读:对
dbt_project.yml做任意微小修改(比如添加一个空格再删除)并保存,dbt会检测到配置文件变更,自动重新读取自定义Schema配置。 - 模型级强制指定:在每个未单独配置的模型中添加
{{ config(schema='你的自定义Schema', database='你的自定义数据库') }},直接绕过缓存问题,确保每次运行都使用指定的位置。 - 彻底修复:升级DBT Core到1.5.x及以上版本,官方在1.5版本中重构了配置缓存逻辑,彻底解决了这个问题。
内容的提问来源于stack exchange,提问作者Fiffe
相关产品推荐
相关产品推荐

