# Контрольный список готовности к dbt v2

dbt v2 уже здесь и теперь общедоступен в dbt platform.

Включите панель готовности к dbt v2

Панель готовности к dbt v2 показывает статус готовности каждого проекта к переходу и блокирующие проблемы в dbt platform. Она внедряется поэтапно — если она ещё не включена для вашей учётной записи, [администратор учётной записи](https://docs.getdbt.tech/docs/platform/manage-access/enterprise-permissions.md#account-admin) может включить её в разделе **Account settings** → **Account**. Инструкции по настройке см. в разделе [Включение функций проверки готовности к dbt v2](https://docs.getdbt.tech/guides/prepare-v2-upgrade.md?step=2).

Если у вас есть доступ к dbt Wizard, используйте [процесс миграции на dbt v2 с помощью dbt Wizard](https://docs.getdbt.tech/docs/dbt-ai/wizard-ide.md#fusion-migration-workflow), чтобы исправлять ошибки совместимости непосредственно в Studio IDE с помощью dbt Wizard — без необходимости вручную анализировать журналы!

## Подготовка к dbt v2

Используйте следующий контрольный список, чтобы подготовить свои проекты к dbt v2

Пошаговые инструкции по подготовке и переходу вы найдете в наших подробных руководствах:

* [ ] [Переход на dbt v2, часть 1: подготовка к переходу](https://docs.getdbt.tech/guides/prepare-v2-upgrade.md?step=1)
* [ ] [Переход на dbt v2, часть 2: выполнение перехода](https://docs.getdbt.tech/guides/upgrade-to-v2.md?step=1)

### Обновитесь до последней версии dbt (рекомендуется)

[Канал выпусков](https://docs.getdbt.tech/docs/dbt-versions/dbt-release-tracks.md) **v1 Latest** включает все новейшие возможности, которые помогут вам подготовиться к dbt v2.

* [ ] Убедитесь, что все ваши проекты используют канал выпусков **v1 Latest** во всех средах развертывания и заданиях. Это не обязательное условие перехода, но оно обеспечит наиболее простой и предсказуемый процесс, позволяя заранее проверить, что ваш проект не зависит от устаревшего поведения.

### Устраните все предупреждения об устаревших возможностях

Необходимо устранить использование устаревших возможностей, пока ваши проекты находятся на канале выпусков dbt v1, поскольку связанные с ними предупреждения станут ошибками после перехода на dbt v2. Инструмент autofix может автоматически устранить многие такие проблемы (например, переместить произвольные настройки в словарь meta). Полный список устаревших возможностей и способов устранения связанных с ними проблем приведен в разделе [Устаревшие возможности](https://docs.getdbt.tech/reference/deprecations.md).

Создайте новую ветку, чтобы начать устранять предупреждения об устаревших возможностях одним из следующих способов:

* [ ] **Запустите autofix в платформе dbt:** Устранить предупреждения об устаревших возможностях можно с помощью [инструмента autofix в Studio IDE](https://docs.getdbt.tech/docs/platform/studio-ide/autofix-deprecations.md). Инструмент autofix можно запускать на канале выпусков **v1 Compatible** или **v1 Latest**.
* [ ] **Запустите autofix локально:** Используйте [расширение для VS Code](https://docs.getdbt.tech/docs/about-dbt-extension.md). В расширение встроен [процесс «Getting Started»](https://docs.getdbt.tech/docs/install-dbt-extension.md#getting-started), который выполнит отладку вашего проекта dbt в VS Code или Cursor IDE и запустит инструмент autofix. Дополнительное преимущество этого способа — установка dbt v2 на ваш компьютер, чтобы вы могли начать локальное тестирование до внедрения в своем аккаунте dbt platform.
* [ ] **Запустите autofix локально (без расширения):** Перейдите в [репозиторий autofix на GitHub](https://github.com/dbt-labs/dbt-autofix), чтобы запустить инструмент локально, если вы не используете VS Code или Cursor. Этот способ только запускает инструмент и не устанавливает dbt v2.
* [ ] **Проверьте переопределения флагов изменения поведения:** dbt v2 удаляет [флаги изменения поведения](https://docs.getdbt.tech/reference/global-configs/behavior-changes.md#behavior-change-flags), отмеченные значением `2.0` в столбце **Removed**, и всегда использует соответствующее новое поведение. Удалите из `dbt_project.yml` все переопределения в `flags:`, которые отключают эти флаги. Остальные флаги по-прежнему можно настраивать (включая специфичные для v2 флаги на этой странице); перед переходом убедитесь, что ваш проект работает с поведением по умолчанию для флагов со статусом mature или removed.

### Перейдите на новую спецификацию YAML

* [ ] **Перенесите конфигурации Semantic Layer:** Если ваш проект использует Semantic Layer, убедитесь, что конфигурации метрик соответствуют [последней спецификации YAML](https://docs.getdbt.tech/docs/build/latest-metrics-spec.md).

### Проверьте и обновите пакеты dbt

Наиболее распространенные пакеты, поддерживаемые dbt Labs (например, `dbt_utils` и `dbt_project_evaluator`), уже совместимы с dbt v2, как и многие сторонние пакеты и пакеты сообщества. Найти пакеты с подтвержденной совместимостью с dbt v2 можно в [каталоге пакетов dbt](https://hub.getdbt.com): проверьте, что настройка `require-dbt-version` включает `2.0.0` или более позднюю версию. Дополнительные сведения см. в разделе [Поддержка пакетов](https://docs.getdbt.tech/docs/dbt/supported-features.md#package-support).

* [ ] Убедитесь, что все ваши пакеты обновлены до последней версии: многие из них содержат улучшения для поддержки dbt v2.
* [ ] Проверьте репозитории пакетов, чтобы убедиться в их совместимости с dbt v2. Если используемый вами пакет пока несовместим, рекомендуем создать issue для его сопровождающего, самостоятельно внести необходимые изменения или временно удалить пакет перед переходом.

### Проверьте пользовательские функции

Убедитесь, что dbt v2 поддерживает все пользовательские функции (UDF) в вашем проекте.

dbt v2 поддерживает почти все встроенные функции платформ данных без дополнительной настройки. Однако платформы данных постоянно добавляют новые функции, которые dbt v2 может пока не поддерживать.

Если вы видите ошибку `dbt0209: No function <function name>`, способ ее устранения зависит от того, является ли функция пользовательской или встроенной:

* [ ] **Для пользовательских UDF:** Создайте функцию заново как [нативную UDF dbt](https://docs.getdbt.tech/docs/build/udfs.md#defining-udfs-in-dbt), чтобы воспользоваться всеми возможностями dbt v2. При `static_analysis: baseline` (значение по умолчанию) большинство UDF будут работать без дополнительной настройки.
* [ ] **Для встроенных функций хранилища данных:** Создайте [issue на GitHub](https://github.com/dbt-labs/dbt). Режим `baseline` в dbt v2 обрабатывает большинство случаев, но выдает предупреждения, а не ошибки. При необходимости можно задать `static_analysis: off` для отдельных моделей.

Дополнительные сведения об использовании `strict` при разработке и `baseline` при развертывании см. в разделе [Оптимизация статического анализа для разработки и развертывания](https://docs.getdbt.tech/best-practices/optimize-static-analysis-for-development-and-deployment.md).

### Проверьте известные ограничения dbt v2

Ваш проект может использовать возможности, которые dbt v2 сейчас [ограничивает](https://docs.getdbt.tech/docs/dbt/supported-features.md#limitations) или не поддерживает.

* [ ] Удалите из проекта ненужные возможности, чтобы обеспечить его совместимость с dbt v2.
* [ ] Следите за ходом реализации критически важных возможностей: мы работаем над их добавлением в dbt v2. Отслеживать прогресс можно с помощью issues, ссылки на которые приведены в [таблице ограничений](https://docs.getdbt.tech/docs/dbt/supported-features.md#limitations).

### Проверьте задания, настроенные в платформе dbt

Мы определяем готовность к переходу на dbt v2 на основе данных о запусках ваших заданий.

* [ ] Убедитесь, что в каждом из ваших проектов в dbt platform выполняется хотя бы одно задание.
  * [ ] Убедитесь, что каждое задание запускалось в течение последних 7 дней. Задания, которые не запускались недавно, считаются неактивными и не допускаются к переходу на dbt v2. Если в интерфейсе готовности к v2 вы видите причину недоступности перехода «no active jobs», запустите задание вручную или измените его расписание.
* [ ] Убедитесь, что все задания выполняются на [канале выпусков **v1 Latest**](https://docs.getdbt.tech/docs/dbt-versions/dbt-release-tracks.md#which-release-tracks-are-available), чтобы переход прошел максимально гладко.
* [ ] Устраните все ошибки выполнения заданий — для корректной проверки готовности к переходу все задания должны выполняться успешно.
* [ ] Удалите все задания, которые больше не используются, чтобы обеспечить точность отчетов о готовности к переходу.
* [ ] Убедитесь, что изменения для устранения предупреждений об устаревших возможностях и обновления пакетов перенесены в ветки git, соответствующие вашим средам развертывания.
* [ ] Для заданий, готовых к переходу, используйте **Debug on dbt v2**, чтобы выполнить отладку в Studio IDE или однократный запуск на dbt v2. См. раздел [Обновление заданий](https://docs.getdbt.tech/guides/prepare-v2-upgrade.md?step=7).
