运行dbt seed报错'Tried to resolve a name to a reference that was unknown to the frame'咨询
你遇到的报错不属于基础配置遗漏问题,核心原因是dbt版本和项目适配版本不兼容,具体说明和解决方法如下:
问题原因
- 你使用的项目适配dbt 1.0及以上版本,本地安装的dbt 0.20.1属于较旧的大版本,新旧版本对seed文件的配置解析逻辑差异较大,旧版本无法识别新版项目配置中对列的引用语法,因此抛出未知引用错误。
解决方法
方案1:升级dbt版本(推荐)
将本地dbt-postgres版本升级到1.0及以上,和项目适配版本对齐即可解决兼容问题,升级完成后重新执行dbt seed即可。
升级命令参考:
pip install --upgrade dbt-postgres==1.0.8
你也可以选择更高的稳定兼容版本。
方案2:适配现有dbt 0.20.1版本
如果需要保留当前dbt版本,可按以下步骤修改项目配置适配旧版本:
- 打开项目根目录下的
dbt_project.yml文件,找到seed相关配置段落,删除所有column_types之外的列相关配置,移除新版才支持的config嵌套层级配置 - 打开
models目录下的schema配置文件,注释掉所有和seed相关的列级配置,包括列描述、列测试等内容 - 执行
dbt clean清除项目缓存后,重新执行dbt seed
内容的提问来源于stack exchange,提问作者Forest.Lin
相关产品推荐
相关产品推荐

