You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在dbt docs主页调用宏显示文档刷新时间戳?

解决dbt Docs主页显示最后刷新时间戳的问题

核心问题定位

你遇到的宏无法识别、时间戳不显示的问题,本质是宏的存放位置错误,导致dbt在生成文档时没有加载到该宏。

分步解决方案

  1. 调整宏的存放路径
    dbt的宏必须放在项目根目录的macros文件夹下(若不存在则新建),不能放在docs目录里。把你的get_date_test宏文件移到macros目录中。

  2. 确认宏配置正确
    检查dbt_project.yml中的macro-paths配置,确保包含宏所在路径(默认就是["macros"],若自定义过需修正):

    macro-paths: ["macros"]
    
  3. 编写正确的时间戳宏
    确保宏的逻辑能正确返回当前时间,示例如下:

    {% macro get_date_test() %}
        {{ return(modules.datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) }}
    {% endmacro %}
    

    这里使用dbt内置的modules对象调用Python的datetime模块,生成格式化的时间戳。

  4. 在overview.md中正确调用宏
    在docs/overview.md里用Jinja语法调用宏,比如:

    ### 文档最后刷新时间
    {{ get_date_test() }}
    
  5. 重新生成并启动文档服务
    执行以下命令刷新文档:

    dbt docs generate
    dbt docs serve
    

    访问本地服务后就能看到显示的时间戳了。

额外排查点

  • 确保宏名称get_date_test没有与其他宏重名
  • 检查dbt版本(建议使用v0.20+版本,对文档中宏的支持更稳定)

内容的提问来源于stack exchange,提问作者Kar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:04:53