Spaces:
Sleeping
Sleeping
| from fastapi_users_db_sqlalchemy import SQLAlchemyUserDatabase | |
| from fastapi import Depends | |
| from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine, async_sessionmaker, AsyncSession | |
| from sqlalchemy.orm import declarative_base | |
| from project.config import settings | |
| Base = declarative_base() | |
| def get_async_engine(url: str) -> AsyncEngine: | |
| return create_async_engine(url=url, echo=True, pool_pre_ping=True) | |
| def get_async_sessionmaker(engine: AsyncEngine) -> async_sessionmaker: | |
| return async_sessionmaker(bind=engine, class_=AsyncSession) | |
| engine = get_async_engine( | |
| settings.DATABASE_URL | |
| ) | |
| async_session_maker = get_async_sessionmaker(engine) | |
| async def get_async_session() -> AsyncSession: | |
| async with async_session_maker() as session: | |
| yield session | |
| async def get_user_db(session: AsyncSession = Depends(get_async_session)): | |
| from project.users.models import User | |
| yield SQLAlchemyUserDatabase(session, User) | |