diff --git a/api/app_builder/main.py b/api/app_builder/main.py index a7b4204..64bfacd 100644 --- a/api/app_builder/main.py +++ b/api/app_builder/main.py @@ -2,8 +2,13 @@ from collections.abc import AsyncGenerator from contextlib import asynccontextmanager from fastapi import FastAPI +from sqlalchemy.ext.asyncio import AsyncEngine from api.app_builder.dependencies import init_dependencies +from api.infrastructure.dependencies.adapters import create_engine +from api.infrastructure.dependencies.configs import app_settings +from api.infrastructure.persistence.models import Base +from api.infrastructure.settings import Settings from .routers import init_routers @@ -11,6 +16,12 @@ from .routers import init_routers @asynccontextmanager async def lifespan(app: FastAPI) -> AsyncGenerator: print("init lifespan") + app.dependency_overrides[Settings] = app_settings + app.dependency_overrides[AsyncEngine] = create_engine + engine = app.dependency_overrides[AsyncEngine](app.dependency_overrides[Settings]()) + + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) yield diff --git a/api/infrastructure/persistence/models/__init__.py b/api/infrastructure/persistence/models/__init__.py new file mode 100644 index 0000000..5c7c96a --- /dev/null +++ b/api/infrastructure/persistence/models/__init__.py @@ -0,0 +1,7 @@ +from .base import Base +from .user import UserModel + +__all__ = ( + "Base", + "UserModel", +)