如何在dbt docs主页调用宏显示文档刷新时间戳?
解决dbt Docs主页显示最后刷新时间戳的问题
核心问题定位
你遇到的宏无法识别、时间戳不显示的问题,本质是宏的存放位置错误,导致dbt在生成文档时没有加载到该宏。
分步解决方案
调整宏的存放路径
dbt的宏必须放在项目根目录的macros文件夹下(若不存在则新建),不能放在docs目录里。把你的get_date_test宏文件移到macros目录中。确认宏配置正确
检查dbt_project.yml中的macro-paths配置,确保包含宏所在路径(默认就是["macros"],若自定义过需修正):macro-paths: ["macros"]编写正确的时间戳宏
确保宏的逻辑能正确返回当前时间,示例如下:{% macro get_date_test() %} {{ return(modules.datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) }} {% endmacro %}这里使用dbt内置的
modules对象调用Python的datetime模块,生成格式化的时间戳。在overview.md中正确调用宏
在docs/overview.md里用Jinja语法调用宏,比如:### 文档最后刷新时间 {{ get_date_test() }}重新生成并启动文档服务
执行以下命令刷新文档:dbt docs generate dbt docs serve访问本地服务后就能看到显示的时间戳了。
额外排查点
- 确保宏名称
get_date_test没有与其他宏重名 - 检查dbt版本(建议使用v0.20+版本,对文档中宏的支持更稳定)
内容的提问来源于stack exchange,提问作者Kar
相关产品推荐
相关产品推荐

