我有一个像这样的 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/