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

Доступно в v1

### Ресурсы

* [Discourse](https://discourse.getdbt.com/t/3180)
* [Журнал изменений](https://github.com/dbt-labs/dbt/blob/1.0.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.0 dbt v1 включает ряд изменений, нарушающих обратную совместимость! По возможности мы сохранили обратную совместимость с прежним поведением, а там, где это необходимо, упростили миграцию.

### Переименованные поля в `dbt_project.yml`

**Эти изменения затрагивают всех:**

* [model-paths](https://docs.getdbt.tech/reference/project-configs/model-paths.md) заменяет `source-paths` в `dbt-project.yml`.
* [seed-paths](https://docs.getdbt.tech/reference/project-configs/seed-paths.md) заменяет `data-paths` в `dbt-project.yml`; значение по умолчанию — `seeds`.
* Параметр `modules-path` переименован в [packages-install-path](https://docs.getdbt.tech/reference/project-configs/packages-install-path.md). Кроме того, значение по умолчанию теперь `dbt_packages`, а не `dbt_modules`. Возможно, вам потребуется обновить это значение в [`clean-targets`](https://docs.getdbt.tech/reference/project-configs/clean-targets.md).
* Значение по умолчанию для `quote_columns` теперь `True` для всех адаптеров, кроме Snowflake.

**А эти, скорее всего, вас не затронут:**

* Значение по умолчанию для [test-paths](https://docs.getdbt.tech/reference/project-configs/test-paths.md) изменено на форму множественного числа — `tests`.
* Значение по умолчанию для [analysis-paths](https://docs.getdbt.tech/reference/project-configs/analysis-paths.md) изменено на форму множественного числа — `analyses`.

### Тесты

Два **типа тестов** теперь называются «singular» (единичные) и «generic» (универсальные) вместо «data» и «schema» соответственно. Метод выбора `test_type:` принимает значения `test_type:singular` и `test_type:generic`. (Для обратной совместимости он также принимает `test_type:schema` и `test_type:data`.) **Без обратной совместимости:** флаги `--data` и `--schema` команды dbt test больше не поддерживаются, а теги `'data'` и `'schema'` больше не присваиваются тестам автоматически. Обновлённая документация: [тесты данных](https://docs.getdbt.tech/docs/build/data-tests.md), [выбор тестов](https://docs.getdbt.tech/reference/node-selection/test-selection-examples.md), [методы выбора](https://docs.getdbt.tech/reference/node-selection/methods.md).

Флаг/свойство `greedy` переименован в **`indirect_selection`**, значение которого по умолчанию теперь `eager`. **Примечание:** это возвращает выбор тестов по умолчанию к поведению, которое было до v0.20. Команда `dbt test -s my_model` *будет* выбирать тесты с несколькими родительскими ресурсами, например `relationships`, которые зависят от невыбранных ресурсов. Чтобы получить поведение, введённое в v0.20 и v0.21, задайте `--indirect-selection=cautious` в CLI или `indirect_selection: cautious` в селекторах YAML. Обновлённая документация: [примеры выбора тестов](https://docs.getdbt.tech/reference/node-selection/test-selection-examples.md), [селекторы YAML](https://docs.getdbt.tech/reference/node-selection/yaml-selectors.md).

### Глобальные макросы

Глобальные макросы проекта реорганизованы, а некоторые старые неиспользуемые макросы удалены: `column_list`, `column_list_for_create_table`, `incremental_upsert`. Это вряд ли повлияет на ваш проект.

### Установка

* [Документация по установке](https://docs.getdbt.tech/docs/supported-data-platforms.md) отражает особенности установки отдельных адаптеров
* Команда `python -m pip install dbt` больше не поддерживается и будет выдавать явную ошибку. Установите нужный плагин адаптера с помощью `python -m pip install dbt-<adapter>`.
* Команда `brew install dbt` больше не поддерживается. Установите нужный плагин адаптера (Postgres, Redshift, Snowflake или BigQuery) с помощью `brew install dbt-<adapter>`.
* Прекращена официальная поддержка Python 3.6, жизненный цикл которого заканчивается 23 декабря 2021 года

### Для пользователей плагинов адаптеров

* **BigQuery:** поддержка таблиц, секционированных по времени загрузки данных, официально объявлена устаревшей в пользу современных подходов. Вместо этого используйте `partition_by` и стратегии инкрементального моделирования. Дополнительные сведения см. в разделе [Инкрементальные модели](https://docs.getdbt.tech/docs/build/incremental-models.md).

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

Мы представили новый [**интерфейс структурированных событий**](https://docs.getdbt.tech/reference/events-logging.md) и перевели всё журналирование dbt на эту новую систему. **Это включает изменение, нарушающее обратную совместимость плагинов адаптеров**, для которого потребуется очень простая миграция. Подробнее см. в [README модуля `events`](https://github.com/dbt-labs/dbt/blob/HEAD/core/dbt/events/README.md#adapter-maintainers). Если вы поддерживаете плагин другого типа, которому *необходимо* прежнее журналирование, пока что вы можете снова включить его с помощью переменной окружения (`DBT_ENABLE_LEGACY_LOGGER=True`); учтите, что мы удалим эту возможность в одной из будущих версий dbt.

[**dbt RPC Server**](https://docs.getdbt.tech/reference/commands/rpc.md) выделен из `dbt-core` и теперь поставляется отдельным пакетом. Его функциональность будет полностью выведена из эксплуатации к концу 2022 года в пользу нового dbt Server. Вместо `dbt rpc` используйте `dbt-rpc serve`.

**Артефакты:** новые схемы (manifest v4, run results v4, sources v3). Основные изменения: добавлены узлы `metrics`; узлы schema test и data test переименованы в узлы generic test и singular test; значения порогов свежести по умолчанию выглядят немного иначе.

### Прекращение поддержки давно устаревших возможностей

Ряд внутренних механизмов из предыдущих минорных версий, для которых выводились предупреждения об устаревании, теперь окончательно выведен из эксплуатации.

* Аргумент `packages` функции [dispatch](https://docs.getdbt.tech/reference/dbt-jinja-functions/dispatch.md) больше не поддерживается, и его использование приведёт к исключению.
* Макрос "adapter\_macro" больше не поддерживается. Вместо него используйте метод [dispatch](https://docs.getdbt.tech/reference/dbt-jinja-functions/dispatch.md), чтобы найти макрос и вызвать полученный результат.
* Аргумент `release` удалён из метода `execute_macro`.

## Новые возможности и изменения в документации

* Добавлен новый тип узлов — [метрики](https://docs.getdbt.tech/docs/build/build-metrics-intro.md)
* [Универсальные тесты](https://docs.getdbt.tech/best-practices/writing-custom-generic-tests.md) можно определять в `tests/generic` (новая возможность), а также в `macros/` (как и прежде)
* [Парсинг](https://docs.getdbt.tech/reference/parsing.md): частичный и статический парсинг теперь включены по умолчанию.
* [Глобальные настройки](https://docs.getdbt.tech/reference/global-configs/about-global-configs.md) стандартизированы. Соответствующие обновления внесены в документацию по [глобальным флагам CLI](https://docs.getdbt.tech/reference/global-configs/about-global-configs.md) и [`profiles.yml`](https://docs.getdbt.tech/docs/local/profiles.yml.md).
* [Команда `init`](https://docs.getdbt.tech/reference/commands/init.md) получила совершенно новый интерфейс и принципы взаимодействия. Теперь она предназначена не только для начинающих пользователей.
* Добавлены подселекторы `result:<status>` для более гибких повторных запусков при ошибках в моделях dbt и сбоях тестов. См. примеры: [Профессиональные советы по рабочим процессам](https://docs.getdbt.tech/best-practices/best-practice-workflows.md#pro-tips-for-workflows)
* [Переменные окружения](https://docs.getdbt.tech/reference/dbt-jinja-functions/env_var.md) с префиксом для секретов теперь разрешены только в `profiles.yml` и `packages.yml`
