Mercurial
diff love/poppy/utils/database.py @ 38:cf9caa4abc3e
[Love] FE and BE. Can chat and render images. Also created MCP for powerpoint generations.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 01 Dec 2025 20:35:56 -0800 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/love/poppy/utils/database.py Mon Dec 01 20:35:56 2025 -0800 @@ -0,0 +1,39 @@ +from sqlmodel import SQLModel, create_engine +from sqlalchemy.ext.asyncio import ( + create_async_engine, + async_sessionmaker, + AsyncEngine, + AsyncSession, +) +import os + +ASYNC_DATABASE_URL = os.getenv("ASYNC_DATABASE_URL", "sqlite+aiosqlite:///./poppy.db") +SYNC_DATABASE_URL = os.getenv("SYNC_DATABASE_URL", "sqlite:///./poppy.db") + +# For migrations, we can probably use async? +sync_engine = create_engine( + SYNC_DATABASE_URL, + echo=False, + future=True, +) + +async_engine: AsyncEngine = create_async_engine( + ASYNC_DATABASE_URL, + echo=False, + future=True, +) + +AsyncSessionLocal = async_sessionmaker( + bind=async_engine, + class_=AsyncSession, + expire_on_commit=False, +) + + +async def get_session(): + async with AsyncSessionLocal() as session: + yield session + + +def create_db_and_tables(): + SQLModel.metadata.create_all(sync_engine)