import os from dotenv import load_dotenv from sqlalchemy.ext.asyncio import ( AsyncSession, async_sessionmaker, create_async_engine, ) from sqlalchemy.orm import DeclarativeBase from .config import BASE_DIR class Base(DeclarativeBase): pass dotenv_path = BASE_DIR / '.env' load_dotenv(dotenv_path=dotenv_path) DB_PASSWORD = os.getenv("DB_PASSWORD") DB_USER = os.getenv("DB_USER") DB_NAME = os.getenv("DB_NAME") DB_URL = f"postgresql+psycopg://{DB_USER}:{DB_PASSWORD}@127.0.0.1:5432/{DB_NAME}" engine = create_async_engine(DB_URL, echo=True) SessionLocal = async_sessionmaker( bind=engine, expire_on_commit=False, class_=AsyncSession, ) async def get_db(): async with SessionLocal() as session: yield session