Ваши данные — у вас, а не в чужом облаке
У каждого проекта своя база PostgreSQL на вашем сервере. CRM, мессенджеры, отчёты и сценарии пишут в неё через один служебный вход. В обход не ходит никто: ни сервис, ни человек. Схема во всех базах одна и меняется только записанными миграциями.
- Своя база у проектаКаждый проект в отдельной базе. Проект не видит соседей.
- Один входСлужебный сервис баз проверяет токен и форму каждого запроса до того, как тронуть данные.
- Одна схемаТаблицы, индексы и триггеры одинаковы во всех проектах. Новый проект получает ровно то же.
Схема одна на всех — и не разъезжается
Раньше правки схемы гонялись руками по базам, и проекты расходились: где-то поле осталось, где-то его нет. Теперь схему доводит один проход, и его зовут ровно в двух случаях: при старте сервиса по всем проектам и при заведении нового.
- Все таблицы, индексы, функции и триггеры описаны в коде
- Проход добавляет недостающее и сверяет типы колонок
- Ничего не удаляет молча
- Ограничения на значения колонок сверяются с реестром
- Разошлись — меняются под точкой сохранения
- Старые строки не подошли — остаётся прежнее правило и строка в журнале, сервис не падает
- Миграции → таблицы → функции и представления → триггеры
- Тот же порядок на старте и для нового проекта
- Другого списка нет, новый проект не отличается от живых
На проде PostgreSQL 18.4. Переезд с 16-й прошёл дампом на новый том, старый том оставался нетронутым как откат до подтверждения.
Каждая правка схемы — записана и учтена
Добавить таблицу или колонку умеет сам проход. Переименовать, снять, сменить тип, поменять ограничение — только миграцией. В каждой базе есть таблица отметок: какая миграция прошла, когда, и была ли выполнена или помечена как уже сделанная.
- 1Правится реестрСхема в коде приводится к новому виду. Новые проекты с этого момента рождаются правильными.
- 2Миграция в конец спискаЕсли правка не только добавляет, дописывается миграция с номером и заметкой «зачем».
- 3Своя транзакция под замкомСтарт сервиса и заведение проекта могут прийти в одну базу одновременно. Замок не даст выполнить миграцию дважды.
- 4Упала — проход остановленДальше по этому проекту ничего не делается: проход поверх недомигрированной базы завёл бы новые колонки рядом со старыми. Ошибка видна в ответе и в журнале старта.
- 5Выкаченное не правятЕё номер уже записан в базах. Исправление — следующей миграцией.
На проде шесть миграций: базовая отметка от 22.09.2026 и пять после неё. Новая база получает все отметки сразу, без выполнения: её строит реестр по текущему коду.
Один вход — и никого в обход
Прямого доступа к базе нет ни у фронта, ни у интеграций, ни у сценариев. Все идут через служебный сервис баз, он один знает пароль. Каждый запрос приносит служебный токен и проходит проверку формы: лишний ключ в теле — ошибка до того, как запрос дойдёт до SQL.
- Роли и праваСмотреть таблицы и править их — два разных права. 12 ролей на проде, раздел «Базы» виден только тем, у кого есть право смотреть.
- Журнал действийВход, выход, смена прав, действия администратора пишутся в журнал. 438 записей с марта 2026.
- Изоляция проектовУ каждого проекта своя база и свой пул соединений. Запрос всегда адресован конкретному проекту, чужие таблицы не видны.
- одна схема на все проекты
- новый проект рождается таким же
- правила колонок сверяются на старте
- каждая — своей транзакцией под замком
- упала — проход остановлен, база целая
- выкаченную не правят, только следующей
- служебный токен на каждый запрос
- права смотреть и править — по ролям
- каждое действие в журнале
- держит нагрузку живых проектов
- записи по ключу не затирают друг друга
- обновление схемы не роняет сервис
Не роняет, не теряет — и говорит, если что не так
База под платформой должна переживать обновления, параллельных писателей и чужие ошибки. Ниже то, что для этого сделано, с цифрами прода на 28.09.2026.
Регулярное резервное копирование по расписанию настраивается под ваш сервер отдельно при внедрении: куда складывать копии и как долго хранить.
Таблицы — прямо в браузере
Разработчик для того, чтобы посмотреть данные, не нужен. В интерфейсе проекта есть раздел «Базы»: список таблиц с поиском, просмотр с фильтрами, редактор строк и создание новых таблиц и колонок.
На скриншоте в блоке на главной КП — таблицы проекта 1 в интерфейсе.
Данные достаются — тремя дверями
Ничего не заперто. Одни и те же таблицы читаются из интерфейса, из сценариев и снаружи по API. Отчёты считаются с тех же строк, куда пишут CRM и мессенджеры, поэтому цифра в отчёте всегда прослеживается до записи.
- Раздел «Базы» в проекте
- Посмотреть, отфильтровать, поправить
- Выгрузить список для обзвона
- Блок «база» в инструкциях
- Прочитать, записать, обновить пачкой
- Тот же вход и те же проверки, что у сервисов
- Чтение и запись строк по HTTP с проверкой токена
- Любую таблицу можно выгрузить
- Или подключить к своему BI
Что нужно от вас
Список данных, которые нужно хранить сверх стандартных: поля, справочники, реестры. И решение по резервным копиям: куда и как часто.
Показать этот модуль на вашей задаче?
За 30 минут посмотрим, как он ляжет на ваш процесс, и скажем, что включается сразу, а что требует настройки.