diff options
Diffstat (limited to 'app/utils/db.py')
| -rw-r--r-- | app/utils/db.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/utils/db.py b/app/utils/db.py new file mode 100644 index 0000000..603ff68 --- /dev/null +++ b/app/utils/db.py @@ -0,0 +1,25 @@ +# app/utils/db.py +import os + +from dotenv import load_dotenv +from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine +from sqlalchemy.orm import DeclarativeBase, sessionmaker + +load_dotenv() + +DATABASE_URL = os.getenv("DATABASE_URL") +if not DATABASE_URL: + raise ValueError("DATABASE_URL не найден в .env!") + +engine = create_async_engine(DATABASE_URL, echo=True, future=True) + +async_session = sessionmaker(bind=engine, class_=AsyncSession, expire_on_commit=False) + + +async def get_async_session() -> AsyncSession: + async with async_session() as session: + yield session + + +class Base(DeclarativeBase): + pass |
