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

Доступно в v1

### Ресурсы

* [Журнал изменений](https://github.com/dbt-labs/dbt/blob/1.2.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)

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

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

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

Версия схемы манифеста обновлена до `v6`. Соответствующие изменения:

* Изменено значение `config` по умолчанию: теперь оно включает новое свойство `grants` со значением по умолчанию `{}`
* Добавлено свойство `metrics` для всех узлов, которые могут ссылаться на метрики с помощью функции `metric()`

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

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

Подробную информацию см. в обсуждении на GitHub [dbt-labs/dbt#5468](https://github.com/dbt-labs/dbt/discussions/5468)

## Новые и изменённые возможности

* **[Права доступа (grants)](https://docs.getdbt.tech/reference/resource-configs/grants.md)** впервые получили встроенную поддержку в `dbt-core`. Эта поддержка распространяется на все стандартные материализации и наиболее популярные адаптеры. Если вы уже используете хуки для назначения простых прав доступа, рекомендуем вместо них использовать встроенную настройку `grants` для моделей, seed-файлов и снимков. Это позволит вам применить принцип [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) и избавиться от дублирующегося или шаблонного кода.
* **[Метрики](https://docs.getdbt.tech/docs/build/build-metrics-intro.md)** теперь поддерживают тип `expression` (метрики на основе метрик), а также функцию `metric()` для ссылок на метрики из моделей, макросов или метрик типа `expression`. Подробнее об использовании метрик на основе выражений см. в документации [**пакета `dbt_metrics`**](https://github.com/dbt-labs/dbt_metrics)
* **[Функции dbt-Jinja](https://docs.getdbt.tech/reference/dbt-jinja-functions-context-variables.md)** теперь включают [модуль Python `itertools`](https://docs.getdbt.tech/reference/dbt-jinja-functions/modules.md#itertools), а также функции [set](https://docs.getdbt.tech/reference/dbt-jinja-functions/set.md) и [zip](https://docs.getdbt.tech/reference/dbt-jinja-functions/zip.md).
* **[Выбор узлов](https://docs.getdbt.tech/reference/node-selection/syntax.md)** включает [метод выбора по файлу](https://docs.getdbt.tech/reference/node-selection/methods.md#file) (`-s model.sql`) и наследование [селекторов YAML](https://docs.getdbt.tech/reference/node-selection/yaml-selectors.md).
* **[Глобальные настройки](https://docs.getdbt.tech/reference/global-configs/about-global-configs.md)** теперь включают флаги CLI и переменные окружения для [`target-path`](https://docs.getdbt.tech/reference/global-configs/json-artifacts.md) и [`log-path`](https://docs.getdbt.tech/reference/global-configs/logs.md), которые можно использовать для переопределения значений, заданных в `dbt_project.yml`

### Отдельные адаптеры

* Профили [Postgres](https://docs.getdbt.tech/docs/local/connect-data-platform/postgres-setup.md) и [Redshift](https://docs.getdbt.tech/docs/local/connect-data-platform/redshift-setup.md) поддерживают настройку `retries` для повторных попыток подключения, если при открытии соединения dbt сталкивается с операционной ошибкой или превышением времени ожидания. По умолчанию выполняется 1 повторная попытка.
