是否允许创建本地 dbt deps 存储库,以便“dbt deps”命令应该从本地存储库下载库?
N.B: Our client is not interested to connect to external network.
Run Code Online (Sandbox Code Playgroud)
是的,这是可能的,前提是存储库已在本地克隆或复制。
dbt 文档的 Packages 页面准确地告诉您如何执行此操作
可以通过指定项目路径来安装本地存储的包,如下所示:
Run Code Online (Sandbox Code Playgroud)packages: - local: /opt/dbt/redshift # use a local path
本地包只能用于特定情况,例如,测试对包的本地更改时。
注意:我认为值得重申文档中给出的警告。您现在将拥有下载、克隆正确版本的软件包以及持续保持软件包最新的工作。
至于这在实践中是如何运作的。考虑以下示例:
/Users/michelle/repos/my_dbt_project
我的 dbt 项目所在的位置(包含dbt_project.yml
和packages.yml
/Users/michelle/repos/dbt_utils
我之前克隆dbt-utils存储库的位置在这个例子中我packages.yml
应该看起来像
packages:
- local: /Users/michelle/repos/dbt_utils # use a local path
Run Code Online (Sandbox Code Playgroud)
请注意,外部包并不位于我的 dbt 项目目录内,而是位于其外部。虽然将其包含在存储库中应该可行,但这不是最佳实践。这篇外部包开发文章更加深入。