You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Добавляем новую модель в имеющийся(или новый) пакет
/db/tables/__init__.py
Добавляем созданную модель в init файл пакета tables
Сгенерировать миграции для новой таблицы
В корневой директории приложения (src) выполнить команду
python3 -m migrations.runner revision --autogenerate - для генерации миграций
после генерации миграций желательно удостоверится, что они сгенерированы верно
(migrations/versions)
python3 -m migrations.runner upgrade head - для применения миграций к БД
/services
interfaces.py:
Создаем интерфейс(I) для доступа сервиса к репозиториям в файле interfaces.py,
Здесь должны быть сами интерфейсы и класс (UoW), в котором определено,
какие репозитории с какими методами принимает сервис.
/repositories
Создаем репозиторий в имеющимся (или новом) пакете, для этого:
Создаем репозиторий - он наследуется от базового репозитория и интерфейса(I) из пункта выше
Не забыть переопределить в новом репозитории метод is_exists
/services/uow.py
Добавляем новое наследование (UoW - созданный выше) в имеющийся в файле класс.
Определяем в имеющемся классе новое свойство, в котором инициализируется репозиторий
и в него прокидывается сессия
/сontrollers/dependencies.py
добавляем в функцию get_uow инициализации uow класса новый репозиторий
/services
Создаем сервис, функция init которого принимает класс (UoW)
Определяем необходимые ошибки бизнес логики в файле errors.py в пакете нашего сервиса
/routers/v1/endpoint_name/dependencies.py
добавить функцию get_service_name возвращающую инициализированный сервис
для последующего внедрения зависимости в app
/application/app.py
регистрируем зависимость в приложении в функции app_setup