Перейти к содержимому

Managed PostgreSQL

Managed PostgreSQL на платформе ONREZA. Полноценный PostgreSQL с автомасштабированием, ветвлением баз данных и автоматическим засыпанием при бездействии.

  • Serverless compute — автомасштабирование от 0.25 до 4.0 CU (PRO)
  • Auto-suspend — сервер засыпает при отсутствии запросов, экономя ресурсы
  • Ветвление (branching) — создание независимых копий БД для preview-деплоев и тестирования
  • Полный PostgreSQL — стандартный PostgreSQL без ограничений на расширения
  • Compute Units — гибкий выбор размера вычислительных ресурсов по плану
  • Pay-as-you-go — PRO-план с включёнными кредитами и оплатой превышения
  1. Откройте вкладку PostgreSQL в настройках проекта.
  2. Нажмите Создать базу данных — для Hobby достаточно ввести имя.
  3. Получите строку подключения — пароль всегда доступен через панель управления.
  4. Подключайтесь из приложения стандартным PostgreSQL-клиентом.

Используйте стандартную строку подключения PostgreSQL:

postgresql://user:password@endpoint.kaiki.onreza.ru:5432/dbname?sslmode=require

При наличии серверного пулинга доступны два режима:

РежимОписаниеКогда использовать
PooledЧерез PgBouncer — пул соединений на стороне сервераОсновной запросы, API, фоновые задачи
DirectПрямое подключение к PostgreSQLАдминистрирование, миграции, LISTEN/NOTIFY

Рекомендуемый режим определяется автоматически. Переключатель доступен в карточке подключения в панели управления — если для вашей БД доступен пулинг, он будет включён по умолчанию.

Пароль базы данных хранится в зашифрованном виде и всегда доступен через кнопку «Показать» в панели управления. Вы не потеряете доступ к БД, даже если не сохранили пароль при создании.

При необходимости пароль можно сбросить — это сгенерирует новый пароль и перезапустит серверы.

В панели доступны готовые примеры подключения для:

  • .env — переменная DATABASE_URL
  • Prisma — конфигурация datasource
  • Drizzle — конфигурация подключения
  • Node.js / Bun — прямое подключение через pg

Включите «Привязка к деплоям» — переменная DATABASE_URL будет автоматически добавляться при каждом деплое. Для preview-деплоев можно включить автоматическое создание веток БД.

Compute Unit — единица вычислительных ресурсов. 1 CU = 1 vCPU + 4 ГБ RAM.

CU SizevCPURAMHobbyPROEnterprise
0.25 CU0.251 ГБФиксированныйОтОт
0.5 CU0.52 ГБДоДо
1.0 CU14 ГБДоДо
2.0 CU28 ГБДоДо
4.0 CU416 ГБДоДо
8.0 CU832 ГБДо
  • Hobby — фиксированный 0.25 CU, изменить нельзя
  • PRO — выбор от 0.25 до 4.0 CU
  • Enterprise — до 8.0 CU

Compute тарифицируется в CU-часах. CU-час = 1 час работы сервера при CU size = 1.0. Стоимость пропорциональна размеру: 1 час на 2.0 CU = 2 CU-часа, 1 час на 0.25 CU = 0.25 CU-часа.

Автоматическое вертикальное масштабирование — ресурсы изменяются без рестарта PostgreSQL.

  1. Каждые 15 секунд проверяется потребление памяти сервера
  2. Если использование памяти > 80% — размер увеличивается на следующий шаг
  3. Если использование памяти < 20% — размер уменьшается
  4. Масштабирование ограничено заданным диапазоном минимального и максимального CU

Шаги масштабирования: 0.25 → 0.5 → 1.0 → 2.0 → 4.0

Сервер БД автоматически засыпает при отсутствии запросов, экономя compute-ресурсы. При новом подключении сервер пробуждается за 2–3 секунды.

ЗначениеПоведение
По умолчаниюПлатформа выбирает оптимальный таймаут (~5 минут)
ОтключеноСервер не засыпает (consume compute постоянно)
5 минутЗасыпание через 5 мин бездействия
15 минутЗасыпание через 15 мин бездействия
1 часЗасыпание через 1 час бездействия
1 деньЗасыпание через 24 часа бездействия

Таймаут настраивается в разделе Настройки базы данных. Доступные значения: от 1 минуты до 30 дней.

Ветки (branches) — полные копии базы данных для:

  • Preview-окружений — каждый PR получает свою копию БД
  • Миграций — тестирование миграций на ветке до применения в production
  • Экспериментов — безопасное тестирование с реальными данными

Ветка создаётся мгновенно (copy-on-write) и не занимает дополнительного места до момента изменения данных.

ПланБаз данныхВеток на БДВсего веток
Hobby11 (только main)1
Pro3515
EnterpriseИндивидуальноИндивидуальноИндивидуально

БД, ветки, compute, storage и transfer считаются с первого активного ресурса и покрываются общим usage credit. Usage сверх credit на Pro оплачивается только в пределах extra usage budget.

ControlЗначениеПри превышении
Usage credit1 000 ₽/месНовые billable-операции блокируются до нового периода или перехода на Pro
CU Size0.25 (фиксированный)Изменение размера недоступно
Баз данных1Создание заблокировано
Веток1 (main)Создание заблокировано
AutoscalingНетНедоступно
МетрикаЛимит/ставка
Usage credit5 000 ₽/мес
Extra usage budget10 000 ₽/период по умолчанию
Compute7.50 ₽/CU-час (блоками по 1 CU-ч)
Storage15 ₽/ГБ-мес
Data Transfer2 ₽/ГБ
Баз данныхДо 3, 100 ₽/мес за активную БД
Веток на БДДо 5, 30 ₽/мес за активную ветку
CU Size0.25–4.0
Autoscaling0.25–4.0 CU

Индивидуальные лимиты, CU до 8.0, выделенные ресурсы. Свяжитесь с sales@onreza.ru.

МетрикаПри превышении
StorageБД переводится в режим read-only
ComputeВсе серверы приостанавливаются
Data TransferВсе серверы приостанавливаются
ВеткиСоздание новых веток заблокировано

Ограничения снимаются автоматически при:

  • Увеличении плана — переход на PRO/Enterprise (применяется автоматически)
  • Начале нового месяца — месячные лимиты (compute, transfer) обнуляются 1-го числа UTC
  • Очистке данных — для storage: удаление данных или веток
  • Connection pooling — используйте режим Pooled для пулинга соединений на стороне сервера
  • Auto-suspend — сервер засыпает при бездействии, пробуждение при подключении (~2-3 сек). Настройте таймаут в разделе «Настройки»
  • Батчинг запросов — группируйте мелкие запросы, чтобы уменьшить количество пробуждений
  • Меньший CU size — если нагрузка позволяет, используйте 0.25 CU
  • VACUUM — регулярная очистка мёртвых строк
  • Партиционирование — архивирование старых данных
  • Удаление неиспользуемых веток — ветки с изменениями занимают дополнительное место
  • Пагинация — ограничивайте размер выборок (LIMIT/OFFSET или cursor-based)
  • Проекция колонок — запрашивайте только нужные поля вместо SELECT *
  • Кэширование — кэшируйте часто запрашиваемые данные на стороне приложения

Метрики отображаются в разделе PostgreSQL проекта:

  • Использование ресурсов — CU-часы, storage, data transfer с прогнозом стоимости (PRO)
  • Лимиты и использование — прогресс-бары для всех метрик
  • Использование по веткам — разбивка хранилища по каждой ветке
  • Серверы — статус и последняя активность каждого сервера БД
  • Максимальное число баз данных и веток определяется вашим тарифным планом
  • Auto-suspend имеет минимальный порог бездействия (1 минута), настраивается в «Настройках» БД
  • Максимальный размер CU: 4.0 на PRO, 8.0 на Enterprise
  • Compute и transfer лимиты обнуляются 1-го числа каждого месяца UTC

Все операции с managed PostgreSQL доступны через nrz db:

Окно терминала
# Создать БД и дождаться готовности
nrz db create --name my-db --wait
# Получить строку подключения
nrz db connection
# Выполнить SQL
nrz db query "SELECT * FROM users LIMIT 10"
# Посмотреть структуру таблиц
nrz db schema
# Управление ветками
nrz db branches
nrz db branches create staging
nrz db branches connection staging
# Настроить auto-inject для деплоев
nrz db config --auto-inject on --preview-branches on

При запуске nrz dev переменная DATABASE_URL автоматически подтягивается из managed PostgreSQL и инжектируется в процесс. Это работает когда:

  • Проект привязан к платформе (nrz link)
  • У БД включён auto-inject

Для подключения к конкретной ветке:

Окно терминала
nrz dev --db-branch staging

Или укажите ветку в onreza.toml:

[db]
branch = "dev"