Без префикса + в путях к ресурсам
Этот флаг изменения поведения предназначен только для dbt v2 и не имеет аналога в dbt v1.
| require_resource_names_without_plus_prefix | dbt 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.
Например, задайте путь к ресурсу так, чтобы он не начинался с +:
models:
my_project:
my_folder: # resource path — no + prefix
+enabled: true # config — keep the + prefix