target_schema在SQL Server上被dbt忽略



我一直试图在dbt_project.yml以及模型文件本身中添加target_schema。

models:
project_name:
model_name:
+target_schema: new_schema

根据我的理解和我在官方文档中读到的,这应该是可行的。但是它被忽略了,显示为标准的dbo。我手工创建了模式以确保它存在,如果我设置了schema,它就会创建一个,格式为dbo_schema,就像文档中描述的那样。但target_schema一直被忽视?

是SQL Server和dbt不支持吗?

没有target_schema配置。您链接到的文档将该名称用于在活动目标中定义的模式配置,该配置在profiles.yml文件中配置:

# profiles.yml
my_profile:
target: dev # this is the default target
outputs:
dev:
schema: dbo # this is what the docs call target_schema

在单个模型(或模型目录)上,您可以额外设置一个也称为schema的配置。这设置了文档中所说的custom_schema。这个配置是从dbt_project.yml, "properties".yml文件,或者模型文件中的{{ config() }}

# dbt_project.yml
models:
project_name:
model_name:
+schema: new_schema # this sets what the docs call custom_schema

上述两个配置文件一起将model_name具体化为一个名为dbo_new_schema的模式,正如您链接到的文档中所解释的那样,因为默认行为是<target_schema>_<custom_schema>

如果您只是想将所有模型具体化为new_schema,那么更改profiles.yml文件中的值,并且不要在dbt_project.yml或其他任何地方设置schema配置。如果你只想要一些模型实体化到new_schema,那么我建议坚持使用自定义模式的默认约定,因为这将更好地推广到多个环境(对于开发人员,QA等)。最后,如果这确实不是您想要的,文档描述了如何覆盖自定义模式名称生成行为。

相关内容

  • 没有找到相关文章

最新更新