Files
doc-forge/backend/database.py
T
zwt13703 e558733f05 init
2026-07-02 14:48:05 +08:00

29 lines
881 B
Python

from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from sqlalchemy.orm import DeclarativeBase
from config import settings
engine = create_async_engine(settings.DATABASE_URL, echo=settings.DEBUG, pool_size=10, max_overflow=20)
async_session = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
class Base(DeclarativeBase):
pass
async def get_db():
async with async_session() as session:
try:
yield session
finally:
await session.close()
async def init_db():
from models.template import Template
from models.paragraph import Paragraph
from models.ai_model import AiModel
from models.document import Document
from models.generation_log import GenerationLog
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)