Spaces:
Running
Running
File size: 955 Bytes
d0e0a14 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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)
|