写 dbt 模型时,一个常见麻烦是:刚敲完表的别名,又得切出去查看它到底有哪些列。开发者 Witty_Tough_3180 为此做了开源工具 dbt-ls。它是一套语言服务器——负责理解代码、再把补全和跳转结果交给编辑器的后台工具。只要现有 dbt 配置能通过 dbt debug,它就会使用默认目标连接数据源。
关键变化是补全开始“认识数据库”。输入 c. 这类表别名后,编辑器会列出真实存在的字段,并显示数据类型;它也能补全 ref() 和 source() 中的模型或数据源名称,还可从 ref('model') 跳到对应 SQL 文件。列信息可来自项目的 YAML 配置、catalog.json,或实时数据仓库,并能自行设置优先级;不希望工具访问仓库时,也可以只读取前两者。
这让 dbt 开发少一些查表结构和凭记忆猜列名的往返。不过作者也说明,工具主要在自己的有限测试项目及 Neovim 中验证,虽然支持 VSCode 和多种常用数据库,真实大型项目里的兼容性仍待更多反馈。