generate_schema_name의 유효한 스키마

generate_schema_name의 유효한 스키마 (Valid schema from generate_schema_name)

require_valid_schema_from_generate_schema_name 플래그는 커스텀 generate_schema_name 매크로가 null 값을 반환할 때 더 엄격한 검증과 파싱 오류를 적용해요. 기본값은 false예요.

출처: 문서

본문

require_valid_schema_from_generate_schema_name dbt v1 Latest dbt v1
Introduced 2026.1 1.12.0a1
Matured (default → true)
Removed

generate_schema_name 매크로는 dbt가 모델과 기타 리소스를 만드는 스키마를 결정해요. 이 매크로에서 null 값을 반환하면 잘못된 스키마 이름이 생길 수 있고 dbt 실행 중 예측 불가능한 동작으로 이어질 수 있어요.

require_valid_schema_from_generate_schema_name 동작 변경 플래그는 기본값이 false예요. false면 커스텀 generate_schema_name 매크로가 null 값을 반환할 때 dbt는 GenerateSchemaNameNullValueDeprecation 경고를 발생시켜요.

require_valid_schema_from_generate_schema_nametrue로 설정하면 dbt는 더 엄격한 검증을 강제하고 파싱 오류를 발생시켜요.

예를 들어 프로젝트에 null을 반환하는 커스텀 generate_schema_name 매크로가 있다면:

macros/get_custom_schema.sql

{% macro generate_schema_name(custom_schema_name, node) -%}
    {%- if custom_schema_name is none -%}
        {{ return(none) }}
    {%- else -%}
        {{ custom_schema_name | trim }}
    {%- endif -%}
{%- endmacro %}

기본 동작에서는 dbt가 deprecation 경고를 발생시켜요. require_valid_schema_from_generate_schema_nametrue로 설정하면 dbt는 오류를 발생시켜요.

이를 해결하려면 매크로가 유효한 스키마 이름(이 예시에서는 target.schema)을 반환하도록 업데이트해요:

macros/get_custom_schema.sql

{% macro generate_schema_name(custom_schema_name, node) -%}
    {%- if custom_schema_name is none -%}
        {{ return(target.schema) }}
    {%- else -%}
        {{ custom_schema_name | trim }}
    {%- endif -%}
{%- endmacro %}

더 알아보기 (Learn more)