macos - 与dbt。如何在 yaml 文件中使用 jinja 宏

标签 macos yaml jinja2 dbt

我有一个像这样的 yaml 文件:

models:
       - name: test_view
        description: "test"
        config:
          meta:
            database_tags:
              ACCOUNT_OBJECTS.TAGS.ENV: DEV`


我正在尝试在该环境中自动将“DEV”更改为“PROD”。我有一个从 Targets.name 获取变量的宏

这是 jinja 代码:

{% macro test_macro(target) %}
      {%- if  target.name == "dev" -%} DEV
      {%- elif target.name == "prod"  -%} PROD
      {%- else -%} invalid
      {%- endif -%}
    {% endmacro %}`

但是,当我尝试使用该宏时,我得到“test_macro 未定义”

例如。 ACCOUNT_OBJECTS.TAGS.ENV:{{ test_macro(target)}}

难道自定义宏还是不能在yaml文件中使用吗?

最佳答案

宏用于对 DBT 从其模型编译的 SQL 查询进行模板化。 YAML 文件用于配置;它们本身不是模型,也不支持宏。

我去寻找,然后there is an active discussion关于 future 是否可以支持,但截至 2022 年底,这是不可能的。

您是否考虑过在模型中使用配置 block 来设置这些元数据?

关于macos - 与dbt。如何在 yaml 文件中使用 jinja 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74857734/

相关文章:

objective-c - 不提示解压

objective-c - NSButton NSTrackingArea - 跟踪不起作用

python - 加载 YAML 保留顺序

google-app-engine - Google App Engine、Jinja2 CSS 样式表未加载 (404)

jinja2 - 如何在 Jinja 中创建 for 循环?

macos - NSSegmentedControl 段的自定义辅助功能

macos - 如何在 Mac OS X 上设置保存文档的 kMDItemKind?

spring-boot - .yaml 中的 Spring 配置文件。如何设置配置属性?

python - PyYAML 解析成任意对象

CSS 未应用于 jinja2 模板