# Окружения dbt

Локальная разработка

dbt позволяет легко поддерживать отдельные окружения для разработки и продакшена с помощью [целевых окружений (targets)](https://docs.getdbt.tech/reference/dbt-jinja-functions/target.md) в рамках [профиля](https://docs.getdbt.tech/docs/local/profiles.yml.md). При локальном использовании dbt (например, при запуске из командной строки) типичный профиль содержит целевое окружение с именем `dev`, заданное по умолчанию. Это означает, что при внесении изменений ваши объекты будут создаваться в целевом окружении *для разработки*, не затрагивая запросы конечных пользователей в продакшене. Убедившись в корректности изменений, вы можете развернуть код в *продакшене*, запустив проект dbt с целевым окружением *prod*.

Запуск dbt в производственной среде

Вы можете узнать больше о различных способах запуска dbt в производственной среде в [этой статье](https://docs.getdbt.tech/docs/deploy/deployments.md).

Цели предлагают гибкость в решении, как реализовать ваши отдельные среды — хотите ли вы использовать отдельные схемы, базы данных или полностью разные кластеры! Мы рекомендуем использовать *разные схемы в одной базе данных* для разделения ваших сред. Это самое простое в настройке и наиболее экономичное решение в современной облачной архитектуре данных.

На практике это означает, что большинство деталей в цели будут одинаковыми для всех целей, за исключением `schema` и учетных данных пользователя. Если у вас несколько пользователей dbt, пишущих код, часто имеет смысл, чтобы *каждый пользователь* имел свою собственную *разработческую* среду. Полезным шаблоном, который мы нашли, является установка схемы вашей dev цели как `dbt_<username>`. Учетные данные пользователя также должны различаться между целями, чтобы каждый пользователь dbt использовал своего собственного пользователя в хранилище данных.
