dbt:检查安装了哪些软件包

iam*_*dor 5 dbt

有没有办法检查安装了哪些软件包?我会期待类似的事情dbt list packages

上下文是:

  • 直到我运行 的dbt deps内容才packages.yml给我带来任何好处。并且在某些情况下模型可以在不运行的情况下被触发dbt deps
  • 我想在运行时检查包

我通过谷歌搜索,dbt --help但没有找到任何东西。

iam*_*dor 0

最近,我有机会与包密切合作,并发表了一篇文章《利用 DBT 包进行数据转换的实用指南》,其中解释了dbt packages其原理

\n

这是引用:

\n

要验证 dbt 项目中是否安装了软件包,您可以检查该packages.yml文件并运行dbt deps命令。

\n
    \n
  1. 检查packages.yml文件:此文件列出了 dbt 项目中安装的所有软件包。查找您要验证的包的名称。如果它在软件包列表中列出,则表明它已安装。

    \n
  2. \n
  3. 运行dbt deps命令:

    \n
      \n
    1. 此命令将显示 dbt 项目中安装的所有软件包的列表。查找您要验证的包的名称。如果列出,则已安装。
    2. \n
    3. 在根 dbt 项目目录中,您会看到一个新目录dbt_modules/,其中包含可供使用的已编译包。注意:必须将 dirdbt_modules/添加到.gitignore.
    4. \n
    \n
  4. \n
\n
>>> tree -L 1 .\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dbt_modules\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dbt_project.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 macros\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 models\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 packages\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 packages.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 profiles.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 snapshots\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 target\n
Run Code Online (Sandbox Code Playgroud)\n

如果您的packages.yml文件包含未安装的软件包,那么您将无法运行任何 dbt 命令:

\n
>>> dbt list\nEncountered an error:\nCompilation Error\n  dbt found 1 package(s) specified in packages.yml, but only 0 package(s) installed in dbt_modules. Run dbt deps to install package dependencies.\n
Run Code Online (Sandbox Code Playgroud)\n

因此,这是我们保证在运行时不会出现任何与软件包安装相关的问题。

\n