Управляемый PostgreSQL
Управляемый PostgreSQL на платформе ONREZA. Полноценный PostgreSQL с автомасштабированием, ветвлением баз данных и автоматическим засыпанием при бездействии.
Возможности
Заголовок раздела «Возможности»- Serverless compute — выбор и автоматическое масштабирование вычислительных ресурсов
- Auto-suspend — сервер засыпает при отсутствии запросов, экономя ресурсы
- Ветвление (branching) — создание изолированных веток БД для preview-деплоев и тестирования
- Совместимость с PostgreSQL — стандартный протокол и привычные клиенты; доступные расширения зависят от конфигурации сервиса
- Compute Units — гибкий выбор размера вычислительных ресурсов по плану
- Pay-as-you-go — PRO-план с включёнными кредитами и оплатой превышения
Быстрый старт
Заголовок раздела «Быстрый старт»- Выберите workspace и откройте самостоятельный раздел PostgreSQL.
- Нажмите Создать базу данных — для Hobby достаточно ввести имя.
- Получите строку подключения — пароль всегда доступен через панель управления.
- Подключайтесь стандартным PostgreSQL-клиентом либо добавьте базу как интеграцию приложения.
База данных не обязана принадлежать конкретному приложению: её можно использовать как самостоятельный workspace-ресурс и позже подключить к одному или нескольким deployment workflows.
Подключение
Заголовок раздела «Подключение»Используйте стандартную строку подключения 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
Подключение к приложениям
Заголовок раздела «Подключение к приложениям»Добавьте базу как PostgreSQL-интеграцию приложения — DATABASE_URL будет
материализован для его deployment environments. Самостоятельная база при этом
остаётся workspace-ресурсом. Для preview workflows можно включить создание
отдельных веток БД.
Роли и доступ из Functions
Заголовок раздела «Роли и доступ из Functions»Стандартная учётная запись управляемого PostgreSQL имеет права владельца на данные и схему БД. Она не является суперпользователем и не имеет права создания SQL-ролей. Создание отдельных SQL-логинов с ограниченными правами в панели управления не предусмотрено.
ONREZA Functions выполняет SQL с правами сохранённой учётной записи подключённой БД. Авторизация посетителей приложения относится к серверной логике приложения и не меняет SQL-роль подключения. Учётные данные БД предназначены для серверного использования. Интерфейс запросов описан в Runtime SDK.
Владелец таблицы по умолчанию обходит её политики RLS. Режим
FORCE ROW LEVEL SECURITY применяет политики к владельцу, но сохраняет его право
менять таблицу и политики. Поэтому RLS и отсутствие привилегии BYPASSRLS
не превращают учётную запись владельца в ограниченный SQL-логин.
Compute Units (CU)
Заголовок раздела «Compute Units (CU)»Compute Unit — единица вычислительных ресурсов. 1 CU = 1 vCPU + 4 ГБ RAM.
Доступные размеры по планам
Заголовок раздела «Доступные размеры по планам»Размеры вычислительных ресурсов и доступность автомасштабирования определяются лимитами управляемого PostgreSQL. Панель управления показывает поддерживаемые сервисом варианты для текущего тарифа.
Влияние на биллинг
Заголовок раздела «Влияние на биллинг»Compute тарифицируется в CU-часах. CU-час = 1 час работы сервера при CU size = 1.0. Стоимость пропорциональна размеру: 1 час на 2.0 CU = 2 CU-часа, 1 час на 0.25 CU = 0.25 CU-часа.
Автомасштабирование (Autoscaling)
Заголовок раздела «Автомасштабирование (Autoscaling)»Автоматическое вертикальное масштабирование — ресурсы изменяются без рестарта PostgreSQL.
Как работает
Заголовок раздела «Как работает»- Каждые 15 секунд проверяется потребление памяти сервера
- Если использование памяти > 80% — размер увеличивается на следующий шаг
- Если использование памяти < 20% — размер уменьшается
- Масштабирование ограничено заданным диапазоном минимального и максимального CU
Доступные шаги масштабирования: 0.25 → 0.5 → 1.0 → 2.0 → 3.0 → 4.0 → 5.0 → 6.0 → 7.0 → 8.0.
В диапазон входят только поддерживаемые сервисом размеры.
Границы и значения по умолчанию приведены в лимитах управляемого PostgreSQL. Действующий диапазон автомасштабирования задаётся в настройках базы.
Автоматическое засыпание (Auto-suspend)
Заголовок раздела «Автоматическое засыпание (Auto-suspend)»Сервер БД автоматически засыпает при отсутствии запросов, экономя compute-ресурсы. При новом подключении сервер пробуждается за 2–3 секунды.
Настройка таймаута
Заголовок раздела «Настройка таймаута»| Значение | Поведение |
|---|---|
| По умолчанию | Платформа выбирает оптимальный таймаут (~5 минут) |
| Отключено | Сервер не засыпает (consume compute постоянно) |
| 5 минут | Засыпание через 5 мин бездействия |
| 15 минут | Засыпание через 15 мин бездействия |
| 1 час | Засыпание через 1 час бездействия |
| 1 день | Засыпание через 24 часа бездействия |
Таймаут настраивается в разделе Настройки базы данных. Доступные значения: от 1 минуты до 30 дней.
Ветвление баз данных
Заголовок раздела «Ветвление баз данных»Ветки (branches) — отдельные состояния базы данных для:
- Preview-окружений — каждый PR получает свою копию БД
- Миграций — тестирование миграций на ветке до применения в production
- Экспериментов — безопасное тестирование с реальными данными
Ветка создаётся мгновенно (copy-on-write) и не занимает дополнительного места до момента изменения данных.
Лимиты веток
Заголовок раздела «Лимиты веток»Количество баз данных и дополнительных веток определяется лимитами управляемого PostgreSQL. Учёт расхода баз и веток описан в методике расчёта.
Восстановление и резервные копии
Заголовок раздела «Восстановление и резервные копии»Восстановление на момент времени (PITR) создаёт новую ветку из состояния исходной ветки на выбранный момент. Исходная ветка сохраняется. Доступное окно восстановления отображается в настройках базы данных.
PITR доступен на Hobby, Pro и Enterprise. Восстановление требует прав на изменение БД, доступного бюджета ресурсов и свободного слота дополнительной ветки. Работа восстановленной ветки учитывается в расходе workspace.
Ветки используют общую историю хранения. Независимая резервная копия хранится отдельно от рабочей БД и её веток; ветвление и PITR такую копию не заменяют.
Лимиты по планам
Заголовок раздела «Лимиты по планам»Тарифные ограничения, включённый кредит и дополнительный бюджет описаны в разделе Лимиты и квоты. Действующая конфигурация workspace отображается в панели управления.
Контроль потребления
Заголовок раздела «Контроль потребления»Контролируемые метрики
Заголовок раздела «Контролируемые метрики»| Метрика | При превышении |
|---|---|
| Storage | БД переводится в режим read-only |
| Compute | Все серверы приостанавливаются |
| Data Transfer | Все серверы приостанавливаются |
| Ветки | Создание новых веток заблокировано |
Снятие ограничений
Заголовок раздела «Снятие ограничений»Ограничения снимаются автоматически при:
- Увеличении плана — переход на PRO/Enterprise (применяется автоматически)
- Начале нового расчётного периода — usage credit и лимиты расхода обновляются по периоду вашего workspace; его границы показаны в биллинге
- Очистке данных — для storage: удаление данных или веток
Оптимизация затрат
Заголовок раздела «Оптимизация затрат»Снижение Compute (CU-часов)
Заголовок раздела «Снижение Compute (CU-часов)»- Connection pooling — используйте режим Pooled для пулинга соединений на стороне сервера
- Auto-suspend — сервер засыпает при бездействии, пробуждение при подключении (~2-3 сек). Настройте таймаут в разделе «Настройки»
- Батчинг запросов — группируйте мелкие запросы, чтобы уменьшить количество пробуждений
- Меньший CU size — если нагрузка позволяет, используйте 0.25 CU
Снижение Storage
Заголовок раздела «Снижение Storage»- VACUUM — регулярная очистка мёртвых строк
- Партиционирование — архивирование старых данных
- Удаление неиспользуемых веток — ветки с изменениями занимают дополнительное место
Снижение Data Transfer
Заголовок раздела «Снижение Data Transfer»- Пагинация — ограничивайте размер выборок (
LIMIT/OFFSETили cursor-based) - Проекция колонок — запрашивайте только нужные поля вместо
SELECT * - Кэширование — кэшируйте часто запрашиваемые данные на стороне приложения
Мониторинг
Заголовок раздела «Мониторинг»Метрики отображаются в разделе PostgreSQL проекта:
- Использование ресурсов — CU-часы, storage, data transfer с прогнозом стоимости (PRO)
- Лимиты и использование — прогресс-бары для всех метрик
- Использование по веткам — разбивка хранилища по каждой ветке
- Серверы — статус и последняя активность каждого сервера БД
Ограничения
Заголовок раздела «Ограничения»- Количество баз данных, веток и размеры CU определяются лимитами тарифа
- Auto-suspend имеет минимальный порог бездействия (1 минута), настраивается в «Настройках» БД
- Расход ресурсов и применение кредита описаны в методике расчёта
Управление через CLI
Заголовок раздела «Управление через CLI»Все операции с управляемым PostgreSQL доступны через nrz db:
# Создать БД и дождаться готовностиnrz db create --name my-db --wait
# Получить строку подключенияnrz db connection
# Выполнить SQLnrz db query "SELECT * FROM users LIMIT 10"
# Посмотреть структуру таблицnrz db schema
# Управление веткамиnrz db branchesnrz db branches create stagingnrz db branches connection staging
# Настроить auto-inject для деплоевnrz db config --auto-inject true --preview-branches trueDATABASE_URL в локальной разработке
Заголовок раздела «DATABASE_URL в локальной разработке»При запуске nrz dev переменная DATABASE_URL автоматически подтягивается из управляемого PostgreSQL и передаётся процессу. Это работает, когда:
- Проект привязан к платформе (
nrz link) - У БД включён auto-inject
Для подключения к конкретной ветке:
nrz dev --db-branch stagingИли укажите ветку в onreza.toml:
[db]branch = "dev"