/baby_domik_bot

Telegram Bot developed on python-telegram-bot

Primary LanguagePythonApache License 2.0Apache-2.0

BabyDomikBot

Стек технологий:

  • python
  • pydantic (по скольку по стольку, по хорошему, стоит его задействовать для DTO, но пока просто использую ORM алхимии)
  • python-telegram-bot
  • googlesheet в качестве базы данных (осуществляется подготовка для переезда на postgresql + sqlalchemy)
  • alembic
  • docker
  • nats (сейчас только как брокер для передачи сообщений от fastapi к боту)
  • nginx
  • fastapi (для обработки уведомлений от юкассы)
  • postgresql (пока данные дублируются в гугле и в базе)
  • sqlalchemy

timeweb в качестве хостинга Покрытие тестами отсутствует (в планах их делать на pytest)


Для запуска со сборкой контейнера миграции

docker compose --profile migration up -d --build

docker compose --env-file config/.env --profile all up -d --build

docker compose --env-file config/.env --profile bot up -d

docker compose --env-file config/.env --profile bot stop

docker image pull mikieremiki/baby_domik_bot

Для создания автомиграции alembic -c 'config/alembic.ini' revision --autogenerate -m 'init'

Для запуска миграции docker compose --profile migration up -d


Для удаленной миграции (подключаюсь из Pycharm с домашней машины на Windows)

alembic -c 'config/alembic.ini' upgrade head

alembic -c 'config/alembic.ini' downgrade base

запуск из PS .\.venv\Scripts\alembic -c 'config/alembic.ini' upgrade +1

Альтернативные варианты:

  • можно подключится к контейнеру бота и из под него сделать миграции
  • запускать контейнер миграции в интерактивном режиме и выполнять команды в ручную
  • выполнять команды на хосте, но надо разворачивать окружение (что в общем то всё равно, что первые два варианта)