Перейти к основному содержанию
Managed Postgres построен на основе стандартного PostgreSQL и совместим с существующей экосистемой PostgreSQL. Для большинства задач разработки можно вести разработку и тестирование на локальном экземпляре PostgreSQL, запущенном в Docker, а не в облачном развертывании. Такой подход ускоряет цикл обратной связи, упрощает онбординг, снижает зависимость от общей infrastructure и позволяет безопасно экспериментировать, не затрагивая продакшн-системы. Цель не в том, чтобы в точности воспроизвести продакшн. Вместо этого создайте воспроизводимое локальное окружение, которое:
  • Использует ту же мажорную версию PostgreSQL, что и в продакшне.
  • Применяет те же определения схем, что и в продакшне.
  • Содержит репрезентативные данные для разработки.
  • Поддерживает стандартные рабочие процессы разработки и тестирования приложений.
Поскольку Managed Postgres — это стандартный PostgreSQL, существующие фреймворки миграции, инструменты управления схемой и подходы к начальному наполнению данными работают без изменений.

Пример процесса локальной разработки

Типичный процесс локальной разработки выглядит так: Managed Postgres органично вписывается в существующие процессы разработки с PostgreSQL. Разрабатывая и тестируя приложения на локальном экземпляре PostgreSQL, команды могут быстро вносить изменения, поддерживать воспроизводимость окружений и быть уверенными, что после развертывания в Managed Postgres приложения будут работать так же.

Запустите PostgreSQL локально в Docker

Самый простой способ создать локальную среду для разработки — запустить PostgreSQL в Docker. Выберите версию PostgreSQL, соответствующую вашей среде Managed Postgres:
docker-compose.yml
Запустите PostgreSQL:
Проверьте подключение:
На этом этапе PostgreSQL запущен локально, но в нём пока нет ни схемы приложения, ни каких-либо данных для разработки.

Примените схему приложения

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

Миграции приложения

Многие команды используют один и тот же фреймворк миграций, который работает в staging- и продакшн-окружениях, — такие инструменты, как Flyway, Liquibase, Rails migrations, Django migrations, Prisma migrations или Alembic. Применение миграций локально гарантирует, что изменения схемы постоянно проверяются в ходе обычной разработки:

Дампы PostgreSQL только со схемой

Экспорт PostgreSQL только со схемой позволяет воссоздать структуру существующей базы данных. Это полезно для онбординга, анализа поведения схемы, проверки совместимости или быстрого начального развертывания сред разработки. Экспортируйте схему:
Восстановить локально:

SQL-определения, хранящиеся в репозитории

Некоторые команды хранят определения схемы прямо в системе контроля версий в виде SQL-файлов. Их можно напрямую применить к локальному экземпляру PostgreSQL при настройке окружения. Независимо от подхода, важно следующее: создание схемы должно быть автоматизированным, воспроизводимым и основанным на определениях, находящихся под контролем версий.

Заполните базу репрезентативными данными для разработки

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

Пример схемы мультитенантного приложения

Ниже приведена схема упрощённого мультитенантного SaaS-приложения:

Сгенерируйте тестовые данные

Установите зависимости:
Создайте файл seed.py:
seed.py
Запустите скрипт:
Полученный набор данных содержит: Этот набор данных достаточно большой, чтобы охватить типичные сценарии работы приложения, логику изоляции тенантов, отчётные запросы и проверки ссылочной целостности, и при этом остаётся достаточно лёгким для локальной разработки и тестирования.

Среда разработки PostgreSQL + ClickHouse

Приведённые выше примеры посвящены локальной разработке с PostgreSQL. Если вы хотите локально протестировать полную архитектуру PostgreSQL-to-ClickHouse, можно запустить стек PostgreSQL + ClickHouse с открытым исходным кодом. Этот стек объединяет PostgreSQL для транзакционных нагрузок, ClickHouse для аналитики и PeerDB для нативной фиксации изменений данных (CDC). Он позволяет вести разработку с PostgreSQL и при этом непрерывно реплицировать данные в ClickHouse, чтобы тестировать операционную аналитику, сценарии отчётности и конвейеры данных в реальном времени прямо с ноутбука. Стек запускается одной командой и включает все необходимые сервисы с предварительной настройкой:
Стек включает:
  • PostgreSQL
  • ClickHouse
  • PeerDB для CDC PostgreSQL
  • Вспомогательные сервисы и примеры приложений
Инструкции по настройке, сведения об архитектуре и пошаговое руководство по всему стеку см. здесь: Это полезный следующий шаг, когда ваше приложение уже локально работает с PostgreSQL и вы хотите проверить синхронизацию PostgreSQL с ClickHouse, Real-time аналитику и сквозную работу приложения.
Последнее изменение 25 июня 2026 г.