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

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 Size vCPU RAM Hobby PRO Enterprise
0.25 CU 0.25 1 ГБ Фиксированный От От
0.5 CU 0.5 2 ГБ До До
1.0 CU 1 4 ГБ До До
2.0 CU 2 8 ГБ До До
4.0 CU 4 16 ГБ До До
8.0 CU 8 32 ГБ До
  • 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) и не занимает дополнительного места до момента изменения данных.

План Баз данных Веток на БД Всего веток
Hobby 1 1 (только main) 1
Pro 3 5 15
Enterprise Индивидуально Индивидуально Индивидуально

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

Control Значение При превышении
Usage credit 250 ₽/мес Новые billable-операции блокируются до нового периода или перехода на Pro
CU Size 0.25 (фиксированный) Изменение размера недоступно
Баз данных 1 Создание заблокировано
Веток 1 (main) Создание заблокировано
Autoscaling Нет Недоступно
Метрика Лимит/ставка
Usage credit 2 500 ₽/мес
Extra usage budget 0 ₽/период по умолчанию, настраивается явно
Compute 7.50 ₽/CU-час (блоками по 1 CU-ч)
Storage 15 ₽/ГБ-мес
Data Transfer 2 ₽/ГБ
Баз данных До 3, 100 ₽/мес за активную БД
Веток на БД До 5, 30 ₽/мес за активную ветку
CU Size 0.25–4.0
Autoscaling 0.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 true --preview-branches true

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

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

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

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

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

[db]
branch = "dev"