# Каналы релизов на платформе dbt

Платформа dbt

Новые возможности фреймворка dbt непрерывно поступают в dbt platform. Ваши проекты и среды обновляются автоматически с выбранной вами периодичностью, в зависимости от вашего тарифного плана dbt.

## Какие каналы релизов доступны?

Набор каналов релизов, доступных для вашего проекта, зависит от основной версии dbt.

### Каналы релизов dbt v2

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

*`v2 Stable` используется по умолчанию для всех новых проектов на базе dbt v2.*

| Канал релизов                | Периодичность | Описание                                                                                                                                          | [Доступность по тарифным планам](https://www.getdbt.com/pricing) | Значение для API  |
| ---------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ----------------- |
| **v2 Nightly**               | Каждую ночь   | Самая свежая ночная сборка. Включает ранний доступ к новым функциям.                                                                              | Все тарифные планы                                               | `fusion-nightly`  |
| **v2 Stable** (по умолчанию) | Еженедельно   | Еженедельный релиз, обеспечивающий баланс между стабильностью и доступом к новым функциям.<br />                                                  | Все тарифные планы                                               | `fusion-stable`   |
| **v2 Extended**              | Ежемесячно    | Последний релиз v2 Stable за предыдущий месяц. Предназначен для тех, кому нужны максимальная стабильность и дополнительное время на тестирование. | Enterprise, Enterprise+                                          | `fusion-extended` |
| **v2 Fallback**              | Ежемесячно    | Релиз v2 Extended за предыдущий месяц. Вариант экстренного отката для администраторов аккаунта.                                                   | Enterprise+                                                      | `fusion-fallback` |

### Каналы релизов dbt v1

| Канал релизов     | Описание                                                                                                                                                                                                                                                                                                                      | Доступность по тарифным планам   | Значение для API |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ---------------- |
| **v1 Latest**     | Обеспечивает непрерывное получение самых новых возможностей в dbt platform.<br /><br />Включает ранний доступ к новым функциям фреймворка dbt до их появления в dbt v1.                                                                                                                                                       | Все тарифные планы               | `latest`         |
| **v1 Compatible** | Обеспечивает ежемесячные релизы, согласованные с последними версиями dbt v1 и адаптеров с открытым исходным кодом, а также функции, доступные исключительно на платформе dbt.<br /><br />Подробнее см. в [журнале изменений канала v1 Compatible](https://docs.getdbt.tech/docs/dbt-versions/compatible-track-changelog.md). | Starter, Enterprise, Enterprise+ | `compatible`     |
| **v1 Extended**   | Релиз **v1 Compatible** за предыдущий месяц.                                                                                                                                                                                                                                                                                  | Enterprise, Enterprise+          | `extended`       |
| **v1 Fallback**   | Релиз **v1 Extended** за предыдущий месяц.                                                                                                                                                                                                                                                                                    | Enterprise+                      | `fallback`       |

### Каналы релизов в API

Различия в названиях в API

Названия каналов релизов в API отличаются от названий в интерфейсе. В API по-прежнему используются прежние названия. В ближайшее время мы планируем добавить псевдонимы для новых названий. Когда они станут доступны, мы уведомим клиентов и обновим эту страницу.

Названия с префиксом `fusion` относятся к v2. Названия без этого префикса относятся к v1.

Чтобы настроить среду на использование канала релизов через [dbt Admin API](https://docs.getdbt.tech/docs/dbt-apis/admin-api.md) или [Terraform](https://registry.terraform.io/providers/dbt-labs/dbtcloud/latest), задайте для `dbt_version` название канала релизов:

* `fusion-nightly`
* `fusion-stable` (ранее — `latest-fusion`)
* `fusion-extended`
* `fusion-fallback`
* `latest`
* `compatible`
* `extended`

## Какой канал релизов выбрать?

Мы рекомендуем использовать dbt v2 во всех новых проектах. Проекты, которые всё ещё используют каналы релизов v1, можно обновить до v2, а проекты на устаревших версиях v1.x следует [перевести на каналы релизов](https://docs.getdbt.tech/guides/migrate-off-legacy-dbt-versions.md).

### Выбор канала релизов dbt v2

Выберите **v2 Stable** (канал по умолчанию для новых проектов), чтобы получать еженедельные релизы, обеспечивающие баланс между стабильностью и доступом к новым функциям. Это рекомендуемая отправная точка для большинства клиентов, переходящих на dbt v2.

Выберите **v2 Nightly**, если хотите получать самые новые функции и готовы к ежедневным релизам. Этот канал идеально подходит командам, для которых приоритетен доступ к самым новым возможностям.

Выберите **v2 Extended**, если вашей команде нужны максимальная стабильность и больше времени на тестирование до развертывания обновлений. Этот канал обычно отстаёт от v2 Stable на один месяц и доступен для аккаунтов Enterprise и Enterprise+.

Используйте **v2 Fallback** только как экстренную меру. Это вариант временного отката для аккаунтов Enterprise+, не предназначенный для постоянного использования.

Администраторы аккаунта могут задать для всей организации канал релизов по умолчанию для новых проектов с помощью переключателя в разделе **Account Settings**. Затем владельцы отдельных проектов могут переопределить это значение для каждой среды.

### Выбор канала релизов dbt v1

Выберите канал релизов **v1 Latest**, чтобы непрерывно получать новые функции, исправления и улучшения производительности — всё самое новое и лучшее в dbt. Этот канал используется по умолчанию для всех клиентов dbt.

Выберите каналы релизов **v1 Compatible** и **v1 Extended**, если вам нужны менее частые релизы, возможность тестировать новые релизы dbt до их внедрения в рабочую среду и/или постоянная совместимость с последними релизами dbt v1 с открытым исходным кодом.

### Использование канала релизов v2 Fallback

Канал релизов **v2 Fallback** предоставляет администраторам аккаунта возможность экстренного отката при подозрении на регрессию в канале «v2 Extended». Эта возможность доступна только для dbt v2 в аккаунтах Enterprise+.

1. Перейдите в раздел **Account settings**
2. Нажмите кнопку **Revert to Fallback** для смены канала релизов в интерфейсе dbt platform. Эта возможность недоступна в настройках среды.
3. Заполните сведения во всплывающем окне **Revert to Fallback**, чтобы подтвердить действие и передать информацию службе поддержки dbt.

Переход на **v2 Fallback** уведомляет службу поддержки dbt, которая может связаться с вами, чтобы помочь решить проблему. Этот канал предназначен только для временной подстраховки, позволяющей продолжить работу, а не для постоянного использования. После устранения проблемы вернитесь на «v2 Extended» или «v2 Stable» (dbt v2) / «v1 Compatible» (dbt v1).

[![Кнопка перехода на канал релизов v2 Fallback на платформе dbt](/img/docs/dbt-versions/rollback.png?v=2 "Кнопка перехода на канал релизов v2 Fallback на платформе dbt")](#)Кнопка перехода на канал релизов v2 Fallback на платформе dbt

[![Всплывающее окно перехода на канал релизов v2 Fallback на платформе dbt](/img/docs/dbt-versions/rollback-popup.png?v=2 "Всплывающее окно перехода на канал релизов v2 Fallback на платформе dbt")](#)Всплывающее окно перехода на канал релизов v2 Fallback на платформе dbt

### Типовые схемы использования

#### Схемы использования каналов dbt v2

**По умолчанию** — Все тарифные планы

* Отдавайте приоритет еженедельным релизам, обеспечивающим баланс между стабильностью и новыми функциями
* Оставьте все среды на канале релизов **v2 Stable** (по умолчанию для новых проектов с момента общедоступного выпуска)

**С акцентом на скорость обновлений** — Все тарифные планы

* Отдавайте приоритет немедленному доступу к самым новым функциям и исправлениям v2
* Настройте все среды на использование канала релизов **v2 Nightly**

**Осторожный подход** — Enterprise, Enterprise+

* Отдавайте приоритет максимальной стабильности и дополнительному времени на тестирование
* Настройте рабочие среды на использование **v2 Extended** (отстаёт от v2 Stable на один месяц)
* Настройте среды разработки на использование **v2 Stable**, чтобы разработчики получали доступ к предстоящим изменениям до их внедрения в рабочую среду

#### Схемы использования каналов dbt v1

**По умолчанию** — Большинство клиентов на всех тарифных планах

* Отдавайте приоритет немедленному доступу к исправлениям и новым функциям
* Оставьте все среды на канале релизов **v1 Latest** (конфигурация по умолчанию)

**Гибридный подход** — Starter, Enterprise, Enterprise+

* Отдавайте приоритет постоянной совместимости между dbt и dbt v1 для разработки и развертывания с использованием обоих продуктов в одних и тех же проектах dbt
* Настройте все среды на использование канала релизов **v1 Compatible**
* Учитывайте, что новые функции станут доступны только после их первого выпуска в dbt v1 с открытым исходным кодом (через несколько месяцев после появления в канале релизов **v1 Latest**)

**Осторожный подход** — Enterprise, Enterprise+, Business Critical

* Отдавайте приоритет периоду обкатки новых функций и исправлений
* Настройте среды разработки и тестирования на использование канала релизов **v1 Compatible**
* Настройте предпроизводственные и рабочие среды на использование канала релизов **v1 Extended**
* Учитывайте, что новые функции станут доступны только *через месяц после* их первого выпуска в dbt v1 с открытым исходным кодом и в канале v1 Compatible. Разработчики (на **v1 Compatible**) получат доступ к новым функциям раньше, чем смогут использовать эти возможности в рабочей среде (на **v1 Extended**), и должны учитывать эту дополнительную задержку.

**Virtual Private dbt или Single Tenant**

* Изменения во всех каналах релизов развертываются в рамках обновлений экземпляра dbt один раз в неделю

## Обновление со старых версий

### Как обновиться

Если вы используете устаревшую версию dbt, мы рекомендуем обновить или удалить ваш проект. Подробнее о подходящем для вас пути см. в разделе [Переход с устаревших версий dbt](https://docs.getdbt.tech/guides/migrate-off-legacy-dbt-versions.md).

Мы рекомендуем сначала обновлять проекты меньшего размера, более новые проекты или те, с которыми ваша команда лучше знакома. Диагностировать и устранять проблемы в них будет быстрее и проще, что позволит эффективнее перенести сложные проекты.

### Что следует учитывать

Чтобы подробнее узнать, как dbt Labs безопасно развертывает стабильные обновления dbt в dbt, рекомендуем прочитать нашу статью в блоге: [Как мы обеспечиваем уверенный переход на канал релизов «Latest» в dbt](https://docs.getdbt.tech/blog/latest-dbt-stability).

 Я использую старую версию dbt на платформе dbt. Что мне делать? Что произойдёт, если ничего не предпринимать?

Если вы используете версию v1.3–v1.7, необходимо выполнить действия для ваших проектов, описанные в разделе [Переход с устаревших версий](https://docs.getdbt.tech/guides/migrate-off-legacy-dbt-versions.md). Если вы не завершите переход до 31 января 2027 года, то потеряете доступ к этим проектам. Если у вас есть вопросы или опасения, [обратитесь в службу поддержки](https://docs.getdbt.tech/docs/dbt-support.md)

 Какие ещё известные проблемы возникают при обновлении со старых версий v1?

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

* \[v1.3] Клиенты, у которых в каталогах проекта, например `models/`, находятся файлы `.py`, не относящиеся к dbt. Начиная с v1.3, dbt ожидает, что эти файлы являются корректными [моделями Python](https://docs.getdbt.tech/docs/build/python-models.md). Клиенту необходимо переместить эти файлы из каталога `models/` или исключить их с помощью `.dbtignore`
* \[v1.5] Клиенты, у которых в определениях заданий используется `--m` вместо `-m` или `--models`. Такое автодополнение (`--m[odels]` для `--models`) никогда не было официально задокументировано и не поддерживалось. Это было неявное поведение argparse (библиотеки CLI, используемой в dbt-core v1.0–1.4), которое не поддерживается в `click` (библиотеке CLI, используемой в dbt-core начиная с v1.5).
* \[v1.5] Пустая некорректная конфигурация `tests` начинает вызывать ошибку валидации]\(/docs/dbt-versions/dbt-upgrade/Older%20versions/upgrading-to-v1.5). Замените пустую конфигурацию `tests` на `tests: []` или удалите её полностью.
* \[v1.6] Из-за оптимизации производительности `load_result` эту функцию нельзя вызывать несколько раз для одного и того же результата запроса. Вместо этого один раз сохраните результат в локальную переменную и затем используйте её повторно (подробности: [dbt-labs/dbt#7371](https://github.com/dbt-labs/dbt/pull/7371)

Вам следует [обратиться в службу поддержки dbt](https://docs.getdbt.tech/docs/dbt-support.md#dbt-cloud-support), чтобы запросить дополнительное время, в течение которого нужно будет внести эти изменения.

 Я вижу, что мой аккаунт переведён на v1 Latest. Что мне делать

Для подавляющего большинства клиентов никаких дополнительных действий не требуется.

Если после перехода на более новую версию dbt в заданиях, запускаемых по расписанию, появились новые сбои, возможно, вам потребуется обновить код проекта с учётом одного из особых случаев, описанных на этой странице. Вам следует [обратиться в службу поддержки dbt](https://docs.getdbt.tech/docs/dbt-support.md#dbt-cloud-support), чтобы запросить дополнительное время, в течение которого нужно будет внести эти изменения.

 Что насчёт несовместимых изменений в пакетах (поддерживаемых dbt Labs или другими разработчиками)?

Говоря о *последней версии*, мы имеем в виду базовую среду выполнения dbt, а не версии устанавливаемых вами пакетов. Непрерывный выпуск обновлений dbt включает тестирование с несколькими популярными пакетами dbt. Это позволяет убедиться, что изменения, которые мы вносим в `dbt`, адаптеры или другие компоненты, совместимы с кодом этих пакетов.

Если новая версия пакета dbt содержит несовместимое изменение (например, изменение одного из макросов в `dbt_utils`), вам не обязательно сразу переходить на эту версию. В конфигурации `packages` (в `dependencies.yml` или `packages.yml`) вы по-прежнему можете указать, какие версии или диапазоны версий пакетов должен устанавливать dbt. Если вы ещё этого не делаете, настоятельно рекомендуем [добавить `package-lock.yml` в систему контроля версий](https://docs.getdbt.tech/reference/commands/deps.md#predictable-package-installs), чтобы обеспечить предсказуемую установку пакетов в средах развертывания и понятную историю изменений при каждом обновлении.

Если вы перейдёте на канал релизов **v1 Latest** и сразу обнаружите, что что-то перестало работать, [обратитесь в службу поддержки](https://docs.getdbt.tech/docs/dbt-support.md#dbt-cloud-support), а на время решения проблемы вернитесь на v1.7.

Если вы уже используете канал релизов **v1 Latest** и заметили несовместимое изменение (например, вчера что-то работало, а сегодня не работает или работает неожиданным либо иным образом), немедленно [обратитесь в службу поддержки](https://docs.getdbt.tech/docs/dbt-support.md#dbt-cloud-support). В зависимости от условий вашего договора поддержки команда dbt Labs ответит в сроки, установленные нашим SLA, и постарается откатить изменение и/или выпустить исправление (как и для любой другой части dbt). Этот подход применяется независимо от того, находится ли первопричина несовместимого изменения в коде проекта или в коде пакета.

Если установленный вами пакет использует *недокументированные* возможности dbt, на них не распространяются те же гарантии, что и на возможности, которые мы документируем и тестируем. Однако мы всё равно приложим все усилия, чтобы не нарушить их работу.
