Одна база данных для двух приложений на Python

У меня есть VK бот на Python, Postgres и Tortoise ORM. Появилась необходимость добавить и веб-приложение в дополнение к боту.

Основной вопрос заключается в том, как правильно оформить проект, чтобы оба приложения работали с одной базой, использовали ORM, но при этом были достаточно самостоятельными и изолированными друг от друга?

Пока в голове есть следующая идея:

project_root/
├─ bot/
│  ├─ app.py
│  ├─ Dockerfile
│  ├─ requirements.txt
├─ api/
│  ├─ app.py
│  ├─ Dockerfile
│  ├─ requirements.txt
├─ db/
│  ├─ migrations/
│  │  ├─ qwerty371487fa_create_some_table.py
│  ├─ models/
│  │  ├─ users.py
│  ├─ db.py
├─ docker-compose.yml

Приложения отдельно лежат в своих директориях, и есть отдельная директория для хранения моделей и конфига БД. Соответственно и бот и API будут импортировать модели и конфиг из db.

Не знаю, насколько такое решение рабочее и удобное для обоих приложений. Например, какое из приложений в таком случае должно генерировать автомиграции? Такое ощущение что неважно, главное чтобы ORM и генератор миграций в зависимостях обоих приложений были одной версии.

Короче говоря, мне тяжело оценить минусы и плюсы моей идеи, поэтому прошу подкинуть ваших идей, или оценить мою


Ответы (0 шт):