고유한 프로젝트 리소스 이름

고유한 프로젝트 리소스 이름 (Unique project resource names)

require_unique_project_resource_names 플래그는 같은 패키지 내 리소스 이름의 고유성을 강제해요. 기본값은 false예요. true로 설정하면 중복 이름에 대해 DuplicateResourceNameError 오류가 발생해요.

출처: 문서

본문

require_unique_project_resource_names dbt v1 Latest dbt v1
Introduced 2025.12 1.11.0
Matured (default → true)
Removed

require_unique_project_resource_names 플래그는 같은 패키지 내 리소스 이름의 고유성을 강제해요. 모델, 시드, 스냅샷, 분석, 테스트, 함수 같은 dbt 리소스는 공통 네임스페이스를 공유해요. 같은 패키지의 두 리소스가 같은 이름을 가지면 dbt는 ref()source()가 어느 리소스를 가리키는지 결정해야 해요. 이전에는 이 검사가 항상 강제되지 않아 중복 이름이 dbt가 잘못된 리소스를 참조하게 할 수 있었어요.

require_unique_project_resource_names 플래그는 기본값이 false예요. 이 설정에서는 같은 패키지의 두 버전 없는 리소스가 같은 이름을 공유하면 dbt가 계속 실행하고 DuplicateNameDistinctNodeTypesDeprecation 경고를 발생시켜요. true로 설정하면 dbt는 DuplicateResourceNameError 오류를 발생시켜요.

예를 들어 프로젝트에 sales라는 모델과 시드가 있다면:

models/sales.sql
seeds/sales.csv

그리고 모델에 다음이 포함돼 있다면:

select * from {{ ref('sales') }}

플래그를 true로 설정하면 dbt는 다음을 발생시켜요:

DuplicateResourceNameError: Found resources with the same name 'sales' in package 'project': 'model.project.sales' and 'seed.project.sales'. Please update one of the resources to have a unique name.

이 오류가 발생하면 리소스 중 하나를 이름 변경하거나 프로젝트 구조를 리팩터링해 이름 충돌을 피해요.

더 알아보기 (Learn more)