from sqlmodel import SQLModel from sqlalchemy.ext.asyncio import create_async_engine, AsyncEngine from sqlmodel.ext.asyncio.session import AsyncSession from gsap_broker.settings import settings engine: AsyncEngine = create_async_engine(settings.database_url, echo=False) async def init_db(): async with engine.begin() as conn: await conn.run_sync(SQLModel.metadata.create_all) # Schema migrations for existing DBs: try: await conn.execute( __import__("sqlalchemy").text("ALTER TABLE authorization_contexts ADD COLUMN session_mode BOOLEAN DEFAULT 0") ) except Exception: pass # Column already exists async def get_session(): async with AsyncSession(engine) as session: yield session