1 раз создавать sessionmaker:
async def get_async_sessionmaker(settings: Annotated[Settings, Depends(load_settings)]) -> sessionmaker:
"""Get sessionmaker instance"""
engine = create_async_engine(
f"postgresql+asyncpg://{settings.db.user}:{settings.db.password}@{settings.db.host}/{settings.db.db_name}",
future=True,
)
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
async_sessionmaker = sessionmaker(
engine, expire_on_commit=False, class_=AsyncSession
)
return async_sessionmaker
теперь мне нужно сделать зависимость которая должна 1 раз создавать этот sessionmaker, а далее с помощью него создавать и прокидывать сессию в каждый хендлер. Я не понимаю, мне нужен мидлварь или зависимость? если зависимость, то как инициализировать sessionmaker лишь раз?
https://t.me/advice17/14
о, спасибо, то есть указывать функцию в Depends вообще не нужно? где тогда оверрайды все записывать? прямо в мейн файле?
Да, там, где приложение твое создается
только вот оно не работает
Обсуждают сегодня