背景: 我正在使用 Fivetran 的 dbt 包的一个分支。
我已将其添加到顶级
packages.yml
文件下,如下所示:
packages:
...
- git: "https://github.com/thleo/dbt_mixpanel__no_quotes.git"
revision: c0b9cc2eec45ccc7b909132f360e76278ae00c25
name: "mixpanel__no_quotes"
当尝试运行在我的项目中使用该包的模型时,出现以下错误:
Validator Error:
{'git': 'https://github.com/thleo/dbt_fivetran_utils__no_quotes.git', 'revision': '34722549847a7eb6be1d2a97c0eb358167a0e249', 'name': 'dbt_fivetran_utils__no_quotes', 'version': '>0.1.0'} is not valid under any of the given schemas
我对它所指的模式感到困惑。
我在 VSCode 中使用了 Redhat 的 YAML 语言支持包来验证 YAML 文件。
我已经尝试了删除值周围的引号的所有组合,仅在某些值周围添加引号......等等。
我已经检查了我的 dbt 项目中的所有
package.yml
参考文献。只有一个其他 projects.yml
文件,它嵌套在项目的更深处,唯一的包引用是:
packages:
- local: ../
移动引号不会导致任何不同的错误消息,并且 YAML 文件似乎有效,所以我不确定为什么会收到有关架构的错误。
这与此ticket中指出的错误类似,并且具有类似的原因。
快速解释:对于 git 包,唯一必需的属性值是
git
,而 name
不是 git 类型包识别的属性。
您可以查看 here dbt-core 的项目代码,了解它是如何定义的,以及可选属性是什么。
根据文档,可以如下引用git包:
packages:
- git: # your git url for the package repo (string)
version: # optional (string, number, array)
subdirectory: # optional (string)
因此您更正后的条目将如下所示:
packages:
...
- git: "https://github.com/thleo/dbt_fivetran_utils__no_quotes.git" # git URL
revision: "34722549847a7eb6be1d2a97c0eb358167a0e249"
资源: