# Обновление до v1.3

Доступно в v1

Поддержка dbt v1.3 – v1.7 будет прекращена January 31, 2027

Версии dbt v1.3-v1.7 достигли [конца жизненного цикла](https://docs.getdbt.tech/docs/dbt-versions.md#end-of-life-versions), и их поддержка будет прекращена January 31, 2027. После этой даты dbt Labs больше не будет поддерживать эти версии, и они будут удалены из dbt platform.

До этой даты переведите свои окружения на [поддерживаемую версию dbt](https://docs.getdbt.tech/docs/dbt-versions.md) или [канал выпусков](https://docs.getdbt.tech/docs/dbt-versions/dbt-release-tracks.md), чтобы продолжать получать обновления и поддержку. Подробнее см. в руководстве [Переход с устаревших версий dbt](https://docs.getdbt.tech/guides/migrate-off-legacy-dbt-versions.md?step=1).

### Ресурсы

* [Журнал изменений](https://github.com/dbt-labs/dbt/blob/1.3.latest/CHANGELOG.md)
* [Руководство по установке CLI dbt v1](https://docs.getdbt.tech/docs/local/install-dbt.md)
* [Руководство по обновлению Cloud](https://docs.getdbt.tech/docs/dbt-versions/upgrade-dbt-platform-version.md)

## Что нужно знать перед обновлением

Мы стремимся обеспечивать обратную совместимость для всех версий 1.x. Если при обновлении вы столкнётесь с ошибкой, сообщите нам об этом, [создав issue](https://github.com/dbt-labs/dbt/issues/new).

В dbt v1.3 есть три изменения, которые могут потребовать действий от некоторых пользователей:

1. Если в корневом каталоге, из которого вы запускаете dbt, находится файл `profiles.yml`, dbt начнёт отдавать ему предпочтение перед файлом профилей в стандартном расположении на вашем компьютере. [Подробнее об этом можно прочитать здесь](https://docs.getdbt.tech/docs/local/connection-profiles.md#advanced-customizing-a-profile-directory).
2. Если в каталогах, указанных в `model-paths` вашего проекта dbt, уже есть файлы `.py`, dbt начнёт пытаться читать их как модели Python. Вы можете использовать [новый файл `.dbtignore`](https://docs.getdbt.tech/reference/dbtignore.md), чтобы указать dbt игнорировать эти файлы.
3. Если ваш пользовательский код обращается к свойству моделей `raw_sql` (через объекты [model](https://docs.getdbt.tech/reference/dbt-jinja-functions/model.md) или [graph](https://docs.getdbt.tech/reference/dbt-jinja-functions/graph.md)), учтите, что оно переименовано в `raw_code`. Это изменение контракта манифеста, подробнее описанное ниже.

### Для пользователей метрик dbt

Названия свойств метрик изменились с сохранением обратной совместимости. Изменения следующие:

* `type` переименовано в `calculation_method`
* `sql` переименовано в `expression`
* Метод вычисления метрик `expression` переименован в `derived`

Мы планируем сохранять обратную совместимость в течение одного полного минорного релиза. Определение метрик с использованием старых названий будет вызывать ошибку в dbt v1.4.

### Для пользователей артефактов dbt (метаданных)

Мы обновили версию схемы манифеста до `v7`. Она включает описанные выше изменения метрик и несколько других изменений, связанных с добавлением моделей Python:

* `raw_sql` переименовано в `raw_code`
* `compiled_sql` переименовано в `compiled_code`
* Добавлено новое свойство узла верхнего уровня — `language` (`'sql'` или `'python'`)

Для пользователей [выбора на основе состояния](https://docs.getdbt.tech/reference/node-selection/syntax.md#how-does-selection-work): этот релиз включает логику, обеспечивающую обратную и прямую совместимость со старыми версиями манифеста. При работе с dbt v1.3 можно использовать выбор `state:modified --state ...` с манифестом, созданным в dbt v1.0 и выше.

### Для разработчиков плагинов адаптеров

Обсуждение на GitHub с подробностями: [dbt-labs/dbt#6011](https://github.com/dbt-labs/dbt/discussions/6011)

## Новая и обновлённая документация

* **[Модели Python](https://docs.getdbt.tech/docs/build/python-models.md)** впервые получили встроенную поддержку в `dbt-core` для хранилищ данных, поддерживающих среды выполнения Python.

* Обновления раздела **[Метрики](https://docs.getdbt.tech/docs/build/build-metrics-intro.md)** отражают новый синтаксис их определения, а также дополнительные свойства, которые теперь доступны.

* Кроме того, внесено несколько связанных обновлений в **[свойства экспозиций](https://docs.getdbt.tech/reference/exposure-properties.md)**: `config`, `label` и проверку `name`.

* **[Настраиваемый `node_color`](https://docs.getdbt.tech/reference/resource-configs/docs.md)** в `dbt-docs`. Теперь вы впервые можете управлять цветами, отображаемыми в DAG dbt. Хотите бронзовый, серебряный и золотой слои? Всё в ваших руках.

* При поиске **[`Profiles.yml`](https://docs.getdbt.tech/docs/local/connection-profiles.md#advanced-customizing-a-profile-directory)** теперь сначала проверяется текущий рабочий каталог, а затем `~/.dbt`.

### Кратко о других изменениях

* Флаг **[«Полное обновление»](https://docs.getdbt.tech/reference/resource-configs/full_refresh.md)** поддерживает короткую форму `-f`.
* **[Метод выбора «config»](https://docs.getdbt.tech/reference/node-selection/methods.md#config)** поддерживает не только строки, но и логические значения и списки в конфигурации.
* Добавлены две новые переменные контекста dbt-Jinja для доступа к метаданным вызова: [`invocation_args_dict`](https://docs.getdbt.tech/reference/dbt-jinja-functions/flags.md#invocation_args_dict) и [`dbt_metadata_envs`](https://docs.getdbt.tech/reference/dbt-jinja-functions/env_var.md#custom-metadata).
