Базы данных: PostgreSQL, MySQL и Valkey.

Управляемые базы данных для вашего проекта: переменные подключения, восстановление на любую минуту за последние 7 дней, оповещения о диске, доступ извне, вкладка «Данные» с таблицами, запросами, импортом и экспортом, а также реплики для чтения.

6 МИН ЧТЕНИЯ

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

Обзор → Сервисы → Добавить сервис, затем выберите:

ДвижокДля чего
PostgreSQL 17большинство приложений
MySQL 8.4приложения, рассчитанные на MySQL
Valkey 8Redis-совместимое хранилище для очередей, кеша и сессий — Horizon, Celery, BullMQ, Sidekiq

Задайте имя (например, db) и выберите ресурсы. Новая база данных начинается с 1 ГБ памяти, 1 ядра процессора и 10 ГБ диска — $10 в месяц. Цена — как у любого сервиса: $6 за ГБ памяти, $4 за ядро, 10 ГБ диска включено на каждый ГБ памяти, далее $0.15 за ГБ.

Подключение: настраивать ничего не нужно

Сервисы проекта обращаются к базе данных внутри частной сети проекта по её имени. Данные для подключения у них уже есть в виде переменных:

  • PostgreSQL / MySQL: DATABASE_URL, DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD; для PostgreSQL также PGHOST, PGPORT, PGDATABASE, PGUSER, PGPASSWORD.
  • Valkey: REDIS_URL, REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, REDIS_CLIENT.
  • Каждая база данных также даёт RIVERVO_<NAME>_URL — для базы с именем db это RIVERVO_DB_URL.

В Обзор базы данных → Подключение показаны хост, порт, база данных и пользователь, а также список Переменные, которые получает проект. Приложение получает переменные со следующим развёртыванием.

Вторая база данных. Привычные имена получает только первая база данных каждого вида. Если в проекте она уже есть, новая база добавляет только свою RIVERVO_<NAME>_URL, а приложение продолжает использовать первую. Чтобы переключиться, задайте на вкладке Переменные значения DATABASE_URL и DB_* новой базы.

Резервные копии и восстановление на любую минуту

PostgreSQL и MySQL резервируются непрерывно: каждое изменение сохраняется в момент, когда оно происходит, поэтому базу данных можно вернуть к любой минуте за последние 7 дней. Кроме того, каждый день создаётся полная копия. Всё хранится в зашифрованном виде, отдельно от базы данных.

Чтобы восстановить: вкладка Резервные копии базы данных → Восстановить на момент, выберите дату и время (любую минуту от начала периода до момента пару минут назад), затем Вернуть к этому моменту. В списке ниже — ежедневные копии (и созданные через Создать копию сейчас); каждую из них тоже можно восстановить.

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

Valkey резервируется каждый день; мы храним копии за последние 7 дней и 4 недели.

Восстановление доступно владельцу аккаунта и администраторам приложения.

Резервные копии самого приложения

У основного приложения есть своя вкладка Резервные копии для файлов, которые оно хранит на своём диске (например, загруженные файлы или база данных SQLite в Laravel). Они копируются каждый день и хранятся в зашифрованном виде; мы храним копии за последние 7 дней и 4 недели. Создать копию сейчас делает дополнительную копию в любой момент.

Диск: строгий лимит с предупреждениями

Диск базы данных — ровно того размера, который вы выбрали. Мы сообщаем вам по электронной почте (и в Telegram, если вы его подключили), когда он заполняется на 80% и 90%, и ещё раз, если он заполнится полностью. Заполненный диск не останавливает базу данных: она продолжает отвечать, но не может сохранять новые данные, пока диск не станет больше.

Чтобы увеличить диск: Настройки базы данных → Ресурсы, передвиньте ползунок Диск и нажмите Применить. Это занимает немного времени и не требует перезапуска.

Доступ извне

По умолчанию к базе данных обращаются только сервисы проекта. Чтобы подключиться с вашего компьютера, из BI-инструмента или с другого сервера, откройте Обзор базы данных → Доступ извне → Открыть доступ:

  1. Добавьте адреса, с которых можно подключаться, — отдельный IP (203.0.113.7) или сеть (198.51.100.0/24). Добавить мой адрес добавляет адрес, с которого вы работаете сейчас.
  2. Сохранить адреса. Панель покажет внешний хост, порт и Строка подключения.

Подключения извне шифруются сертификатом на собственный адрес базы данных:

  • PostgreSQL принимает подключения извне только в зашифрованном виде.
  • Valkey принимает их только через TLS.
  • MySQL поддерживает шифрование — включите его в своём клиенте (режим SSL «required»).

Закрыть доступ сразу прекращает подключения извне; сервисы проекта продолжают работать как прежде. Открывать и закрывать доступ могут владелец аккаунта и администраторы приложения.

Вкладка «Данные»

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

Таблицы и запросы (PostgreSQL, MySQL)

  • Таблицы — просмотр любой таблицы, по 50 строк на странице, только чтение. Найти таблицу фильтрует список.
  • SQL-редактор — выполнение запросов от имени собственного пользователя базы данных. Запросы на чтение выполняются сразу; команды, изменяющие данные, требуют подтверждения. До 30 секунд и 1 000 строк на запрос.

Ключи и команды (Valkey)

Просматривайте ключи по шаблону (например, user:*) и смотрите их значения; выполняйте по одной команде в привычном синтаксисе Valkey. Команды, изменяющие данные, требуют подтверждения. FLUSHALL, FLUSHDB, CONFIG, SHUTDOWN, DEBUG и скрипты здесь недоступны.

Импорт

Данные → Импорт и экспорт → Импорт данных, из одного из трёх источников:

  • Из файла — .sql или .sql.gz; для PostgreSQL также архив pg_dump -Fc (.dump). До 2 ГБ (и не больше диска базы данных); не закрывайте страницу, пока загрузка не завершится.
  • По ссылке — ссылка на файл дампа, который открывается без входа в систему, например временная ссылка из вашего хранилища. Большие дампы передаются потоком, поэтому подойдёт любой размер, который помещается на диск.
  • Из другой базы — другая база данных того же вида, доступная из интернета: PostgreSQL в PostgreSQL, MySQL или MariaDB в MySQL. Сначала мы проверяем подключение, затем копируем данные напрямую. Пароль используется только для этого копирования и не сохраняется.

Перед каждым импортом мы сохраняем резервную копию текущих данных, поэтому их всегда можно восстановить на вкладке Резервные копии. Таблицы и другие объекты из импорта заменяют объекты с теми же именами; всё остальное остаётся. База данных тем временем продолжает работать, а страницу можно закрыть.

Экспорт

Экспорт → Создать копию готовит свежую копию: архив PostgreSQL (.dump, восстанавливается через pg_restore) или сжатый SQL-файл (.sql.gz) для MySQL. Ссылка для скачивания появляется, когда копия готова, и действует 24 часа.

Кто что может

Вкладка Данные — просмотр данных, их изменение в редакторе, импорт и экспорт — доступна владельцу аккаунта и людям с ролью Разработчик или Администратор в приложении. Роль Только просмотр данные не видит. См. Доступ к приложению.

Реплики для чтения (PostgreSQL, MySQL)

Реплика для чтения — это копия базы данных, которая повторяет каждое изменение в течение нескольких секунд. Направляйте на неё отчёты, аналитику, выгрузки и другие тяжёлые запросы на чтение, и основная база данных останется быстрой для записи.

Обзор базы данных → Реплики для чтения → Добавить реплику для чтения. До 2 реплик на одну базу данных.

  • Реплика хранит полную копию данных, поэтому её диск не меньше диска основной базы.
  • Проект получает собственную переменную реплики RIVERVO_<NAME>_URL (по имени реплики); DATABASE_URL остаётся на основной базе.
  • Первое копирование занимает несколько минут в зависимости от объёма данных; основная база тем временем продолжает работать.
  • Реплика принимает только запросы на чтение. Резервные копии и восстановление на момент остаются за основной базой.
  • Панель показывает, насколько реплика отстаёт (Синхронизирована или задержка в секундах). Если отставание больше минуты сохраняется 5 минут, мы сообщаем вам и сами разбираемся в причине.

Реплика оплачивается как любой сервис, по её собственным ресурсам.

Превращение реплики в самостоятельную базу

Настройки реплики → Сделать самостоятельной. Реплика навсегда перестаёт повторять основную базу, начинает принимать запись и получает собственные резервные копии. Это занимает около минуты. Проект оставляет DATABASE_URL на исходной базе данных; чтобы перевести приложение на новую самостоятельную базу, измените DATABASE_URL и DB_* на вкладке Переменные.

Всё ещё не можете разобраться?

Напишите живому инженеру — медианный ответ менее 3 минут в любое время суток.

Написать в поддержку