Лучший способ инициализировать и перенести схему Postgresql в микросервис - PullRequest
0 голосов
/ 20 июня 2020

Я разрабатываю свой первый проект с использованием архитектуры микросервисов. Моя первая идея - иметь общую базу данных Postgres в контейнере Docker, где каждый микросервис системы может иметь свою собственную схему. Сейчас я столкнулся с тем, что я не уверен, как каждый микросервис должен инициализировать (создать свою собственную роль) и перенести (пока я просто создаю схему, в будущем я хотел бы использовать инструмент миграции, такой как Flyway), БД. Я читал много теорий по этому поводу, но ни одна из них не подходит для того, что мне (думаю, мне) нужно.

Проблемы, с которыми я сталкиваюсь:

  1. Создайте роль для микросервиса.

На этом этапе мне понадобятся имя пользователя и пароль суперпользователя (или пользователя с разрешениями на создание ролей). Проблема: для выполнения контейнера всегда будет нужен пользователь и пароль суперпользователя. Этот шаг необходим только при самом первом развертывании микросервиса в системе, поэтому я не думаю, что установка этого шага при запуске микросервиса имеет смысл. Проблема: при каждом запуске контейнера будет выполняться создание роли.

Перенести БД микросервиса (его схему в БД).

То же самое, что и раньше, это редко понадобится (по крайней мере, теоретически), поэтому я не думаю, что это хорошо Идея настроить его при запуске контейнера. Проблема: при каждом запуске контейнера миграция будет происходить до запуска приложения, что в большинстве случаев не нужно, поскольку схема БД должна время от времени меняться.

Я не буду использовать Kubernetes или какой-либо оркестратор инструмент ... по крайней мере, пока.

Есть мысли экспертов в этой области?

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