Одна база данных для двух приложений на 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 и генератор миграций в зависимостях обоих приложений были одной версии.
Короче говоря, мне тяжело оценить минусы и плюсы моей идеи, поэтому прошу подкинуть ваших идей, или оценить мою