Перейти к основному содержимому

Без префикса + в путях к ресурсам

Флаг только для dbt v2

Этот флаг изменения поведения предназначен только для dbt v2 и не имеет аналога в dbt v1.

require_resource_names_without_plus_prefixdbt v2
Введён2.0.0-preview.208
Переведён в стабильный статус (по умолчанию → true)—
Удалён—

По умолчанию флаг require_resource_names_without_plus_prefix имеет значение false.

В dbt_project.yml префикс + обозначает настройку, а ключ без этого префикса рассматривается как часть пути к ресурсу (имя папки или файла). Исторически dbt допускал пути к ресурсам, начинающиеся с + (например, папку с именем +my_folder внутри models), хотя префикс + предназначен только для настроек. Это непреднамеренное поведение приводит к появлению вводящих в заблуждение сообщений об ошибках, когда у настройки отсутствует префикс +, поскольку 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

Нашли ошибку?

0