from sqlalchemy import future from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine from sqlalchemy.orm import sessionmaker, declarative_base from app.settings import settings Base = declarative_base() # engine = create_async_engine(settings.DATABASE_URL, echo=True, future=True) # Session = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False) # def get_session(): # with Session() as session: # yield session class AsyncDatabaseSession: def __init__(self): self._session = None self._engine = None self._engine = create_async_engine( settings.DATABASE_URL, future=True, echo=True, ) self._session = sessionmaker( self._engine, expire_on_commit=False, class_=AsyncSession )() def __getattr__(self, name): return getattr(self._session, name) # def init(self): db = AsyncDatabaseSession() # async def get_session() -> AsyncSession: # async_session = sessionmaker( # engine, class_=AsyncSession, expire_on_commit=False # ) # async with async_session() as session: # yield session # # from sqlalchemy import create_engine # # from sqlalchemy.ext.declarative import declarative_base # # from sqlalchemy.orm import sessionmaker # engine = create_engine(settings.DATABASE_URL) # SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)