init
This commit is contained in:
28
app/presentation/main.py
Normal file
28
app/presentation/main.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
from app.infrastructure.db.sqlalchemy.models import Base
|
||||
from app.infrastructure.db.sqlalchemy.session import get_engine
|
||||
from app.presentation.api.v1.health import router as health_router
|
||||
from app.presentation.api.v1.users import router as users_router
|
||||
|
||||
|
||||
def create_app() -> FastAPI:
|
||||
app = FastAPI(title="DDD Onion FastAPI Demo", version="1.0.0")
|
||||
|
||||
app.include_router(health_router)
|
||||
app.include_router(users_router)
|
||||
|
||||
@app.on_event("startup")
|
||||
async def on_startup() -> None:
|
||||
# демо-миграция: создать таблицы при старте
|
||||
# в проде делай Alembic, но файл models.py уже готов.
|
||||
engine = get_engine()
|
||||
async with engine.begin() as conn:
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
|
||||
return app
|
||||
|
||||
|
||||
app = create_app()
|
||||
Reference in New Issue
Block a user