dbt在SQL Server中配置target_schema无效问题咨询
SQL Server 适配的dbt-sqlserver插件是支持target_schema配置的,你遇到的问题大概率是配置细节或插件特性导致的,以下是具体排查方向:
核对配置层级的准确性
确保project_name是你dbt项目的真实名称,model_name是模型所在的子目录或具体模型文件名(不带.sql后缀),层级必须和项目结构完全匹配。例如模型在models/finance/目录下,正确配置应为:models: my_actual_project: finance: +target_schema: new_schema单个模型的配置示例:
models: my_actual_project: sales_report: +target_schema: new_schema区分
schema与target_schema的差异
dbt-sqlserver插件对根级schema配置(不带+前缀)会自动和target.schema(默认dbo)拼接成dbo_new_schema,这是插件的默认行为。而+target_schema是用来直接覆盖目标schema的,不会进行拼接。如果你的profiles.yml中SQL Server连接配置里指定了schema字段,会优先使用该值,需确保模型级的+target_schema明确覆盖此设置。验证权限与schema可用性
确认dbt连接SQL Server的账号拥有new_schema的完整读写权限(如CREATE TABLE、ALTER等),权限不足时dbt会自动 fallback 到默认schema。可以通过dbt run --model 你的模型名 --debug查看日志,确认target_schema的实际取值是否符合预期。升级dbt-sqlserver插件版本
旧版本插件可能存在target_schema配置的bug,建议升级到最新稳定版(如v1.6及以上)后重新测试。
内容的提问来源于stack exchange,提问作者Thomas L.

