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_name을 true로 설정하면 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_name을 true로 설정하면 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)
- 커스텀 스키마 — generate_schema_name 매크로
- 동작 변경(Behavior changes)