리소스 경로에 + 접두어 금지

리소스 경로에 + 접두어 금지 (No + prefix on resource paths)

require_resource_names_without_plus_prefix 플래그는 dbt_project.yml에서 +로 시작하는 리소스 경로(폴더·파일 이름)를 경고 또는 오류로 처리해요. 이 동작 변경 플래그는 dbt v2 전용이며 dbt v1에 해당하는 것이 없어요.

출처: 문서

본문

dbt v2

이 동작 변경 플래그는 dbt v2 전용이며 dbt v1에 해당하는 것이 없어요.

require_resource_names_without_plus_prefix dbt v2
Introduced 2.0.0-preview.208
Matured (default → true)
Removed

require_resource_names_without_plus_prefix 플래그는 기본값이 false예요.

dbt_project.yml에서 + 접두어는 구성을 표시하고, 접두어가 없는 키는 리소스 경로(폴더 또는 파일 이름)의 일부로 취급돼요. dbt는 + 접두어가 구성 전용임에도 불구하고 +로 시작하는 리소스 경로(예: models 아래 +my_folder라는 폴더)를 역사적으로 허용했어요. 이는 구성에 + 접두어가 빠졌을 때 dbt가 + 접두어 키가 폴더 이름인지 오타 난 구성인지 확실히 구분하지 못해 오해의 소지가 있는 오류 메시지가 생기는 우연한 동작이에요.

require_resource_names_without_plus_prefix 플래그가 false면 dbt는 +로 시작하는 각 리소스 경로에 대해 경고를 발생시켜요:

[warning] [InvalidConfig (dbt1005)]: Resource path `snapshot_contract.+path_1` in dbt_project.yml starts with `+`. This will be deprecated in future versions of dbt.

플래그가 true면 dbt는 + 접두어 키를 인식되지 않는 구성 키로 취급하고 대신 오류를 발생시켜요:

[error] [SerializationError (dbt1013)]: Invalid model definition `snapshot_contract.+path_1`: Unrecognized key `snapshot_contract.+path_1`. Custom keys must go under `+meta`.

경고나 오류를 해결하려면 dbt_project.yml의 폴더나 파일 이름에서 + 접두어를 제거해요. 커스텀 키는 +meta 아래에 중첩해요.

예를 들어 리소스 경로 이름을 +로 시작하지 않게 지어요:

dbt_project.yml

models:
  my_project:
    my_folder:        # resource path — no + prefix
      +enabled: true  # config — keep the + prefix

더 알아보기 (Learn more)