调用dbt audit helper宏报错:'None'无'information_schema'属性求助
dbt audit_helper宏调用报错解决方案
错误原因
报错jinja2.exceptions.UndefinedError: 'None' has no attribute 'information_schema'的核心原因是:old_etl_relation变量的值为None,即adapter.get_relation方法未找到指定的LANDING.STG_ORDERS关系(表/视图)。
排查与解决步骤
- 确认
LANDINGschema存在于target.database对应的数据库中 - 检查
STG_ORDERS表/视图是否确实存在于LANDINGschema下,注意对象名称的大小写匹配(不同数据库大小写敏感规则不同,比如PostgreSQL区分大小写,Snowflake默认不区分但带引号会强制区分) - 验证执行dbt的数据库用户拥有访问
LANDING.STG_ORDERS的权限 - 增加空值判断逻辑,避免None值传入宏导致报错:
{% set old_etl_relation=adapter.get_relation( database=target.database, schema="LANDING", identifier="STG_ORDERS" ) -%} {% set dbt_relation=ref('STG_ORDERS') %} {% if old_etl_relation is not none %} {{ audit_helper.compare_relation_columns( a_relation=old_etl_relation, b_relation=dbt_relation ) }} {% else %} {{ log("Warning: 未找到LANDING.STG_ORDERS关系", info=True) }} {% endif %}
内容的提问来源于stack exchange,提问作者chris
相关产品推荐
相关产品推荐

