Пользовательские настройки
~/.dbt/user_settings.yml — это файл конфигурации пользовательского уровня для личных настроек dbt. Поскольку он всегда находится в ~/.dbt/, его настройки применяются глобально ко всем проектам на вашем компьютере независимо от того, какой проект вы запускаете и где расположен ваш profiles.yml.
На данный момент user_settings.yml в основном заполняется командой dbt login для локальной настройки dbt State (manage_state). Со временем dbt может добавить в этот файл другие флаги пользовательского уровня.
Настройки в этом файле отделены от конфигурации уровня проекта (dbt_project.yml) и конфигурации подключения (profiles.yml). Используйте этот файл для настроек, относящихся к вам, а не к проекту, как альтернативу заданию переменных окружения или заполнению файла .env.
flags:
manage_state: true
Некоторые команды dbt автоматически записывают настройки в этот файл. Вы также можете редактировать его вручную.
При запуске dbt login dbt записывает настройки в user_settings.yml:
- Вход с помощью учётной записи dbt platform
- В dbt v2 CLI запрашивает подтверждение перед записью в
user_settings.yml. - В dbt v1.13 dbt автоматически записывает
manage_state: true. Если ранее вы задалиmanage_state: false, CLI запрашивает подтверждение перед перезаписью этого значения. - Настройка
manage_state: trueвключает dbt State локально при каждом выполненииdbt runилиdbt build.
- В dbt v2 CLI запрашивает подтверждение перед записью в
Если в user_settings.yml уже задано значение, dbt login запрашивает подтверждение перед его перезаписью.
Приоритет настроек
user_settings.yml имеет самый низкий приоритет в иерархии флагов dbt. Более специфичные настройки всегда переопределяют его значения. Подробнее о приоритете флагов см. в разделе О флагах (глобальных настройках).
- Параметр CLI (наивысший приоритет)
- Переменная окружения
- Уровень проекта (
dbt_project.yml) - Уровень пользователя (
~/.dbt/user_settings.yml) (самый низкий приоритет)
Например, если в user_settings.yml задано manage_state: true, но вы запускаете dbt run --no-manage-state, флаг CLI имеет приоритет, и dbt отключает dbt State для этого запуска.
Если dbt State включён локально, но не в dbt platform
Если в user_settings.yml задано manage_state: true, но dbt State не включён в вашей учётной записи dbt platform, dbt завершится с ошибкой при следующем выполнении dbt run или dbt build. Чтобы устранить проблему, выполните одно из следующих действий:
- Включите dbt State в своей учётной записи dbt platform.
- Отключите dbt State локально, задав
manage_state: falseвuser_settings.yml, или выполнитеdbt run --no-manage-state.