모든 경고를 위한 Warn-error 핸들러

모든 경고를 위한 Warn-error 핸들러 (Warn-error handler for all warnings)

require_all_warnings_handled_by_warn_error 플래그는 실행 중 발생한 모든 경고를 --warn-error / --warn-error-options 핸들러를 통해 처리할지 제어해요. dbt v1.12부터 기본값이 true예요.

출처: 문서

본문

require_all_warnings_handled_by_warn_error dbt v1 Latest dbt v1
Introduced 2025.06 1.10.0
Matured (default → true) 2026.09 1.12.0
Removed

dbt v1.12부터 require_all_warnings_handled_by_warn_error 플래그는 기본값이 true예요.

이 플래그가 활성화되면 실행 중 발생한 모든 경고가 --warn-error / --warn-error-options 핸들러를 통해 라우팅돼요. 이렇게 하면 경고를 오류로 승격하거나 무음화할 때 일관된 동작이 보장돼요. 플래그가 false면 일부 경고만 핸들러가 처리하고 다른 경고는 우회할 수 있어요.

--warn-error(또는 --warn-error-options='{"error":"all"}')를 사용하는 프로젝트는 이전에 무시됐던 경고 때문에 빌드가 실패할 수 있어요.

영향

이는 warn_error: true 또는 --warn-error를 사용하는 프로젝트에만 영향을 줘요 — CI나 엄격 모드로 구성된 dbt platform 프로덕션 작업에서 흔해요. --warn-error가 없는 프로젝트는 영향을 받지 않아요.

warn_error: true 사용자에게 "로그만" 에서 "오류"로 전환되는 경고 예시:

  • JinjaLogWarning — 존재하지 않는 시드 컬럼에 대해 선언된 컬럼 타입에 대해 발생
  • WarnStateTargetEqual--state--target 디렉토리가 같은 경로일 때 발생
  • SelectExcludeIgnoredWithSelectorWarning — 레거시 --selector 플래그가 --select 또는 --exclude와 조합될 때 발생
  • RunResultWarningMessage — 테스트 또는 모델이 WARN 상태를 반환할 때 발생
  • 이전에 --warn-error가 처리하지 않던 다양한 어댑터 레벨 경고

권장 조치

warn_error: true--warn-error를 사용하는 작업이, 이전에는 로그 라인으로만 나타나던 이벤트 클래스에 대해 파싱 또는 실행 시점에 EventCompilationError로 실패하면, warn_error_options로 특정 경고를 무음화할 수 있어요:

dbt_project.yml

flags:
  warn_error_options:
    silence:
      - JinjaLogWarning
      - WarnStateTargetEqual
      - RunResultWarningMessage
      - SelectExcludeIgnoredWithSelectorWarning

warn 목록을 사용해 --warn-error가 오류로 승격시키는 상황에서도 특정 이벤트를 경고로 유지할 수도 있어요.

이 동작을 옵트아웃하려면 플래그를 false로 설정해요:

dbt_project.yml

flags:
  require_all_warnings_handled_by_warn_error: false

더 알아보기 (Learn more)