agentic.email/backend/app/database.py
2026-10-06 18:27:06 +05:30

33 lines
774 B
Python

from datetime import timezone
from collections.abc import AsyncIterator
from pymongo import AsyncMongoClient
from sqlalchemy.ext.asyncio import (
AsyncSession,
async_sessionmaker,
create_async_engine,
)
from app.config import get_settings
settings = get_settings()
engine = create_async_engine(settings.database_url, pool_pre_ping=True)
SessionFactory = async_sessionmaker(engine, expire_on_commit=False)
mongo_client: AsyncMongoClient = AsyncMongoClient(
settings.mongo_url,
tz_aware=True,
tzinfo=timezone.utc,
)
mongo_db = mongo_client[settings.mongo_database]
async def get_postgres_session() -> AsyncIterator[AsyncSession]:
async with SessionFactory() as session:
yield session
def get_mongo_database():
return mongo_db