feat: add SQLite persistence models

This commit is contained in:
Bastian Wagner
2026-08-15 09:18:57 +02:00
parent 91728cba86
commit 318d7c8ddb
7 changed files with 269 additions and 0 deletions

18
app/db/session.py Normal file
View File

@@ -0,0 +1,18 @@
from sqlalchemy import create_engine
from sqlalchemy.engine import Engine
from sqlalchemy.orm import Session, sessionmaker
from app.db.models import Base
def create_db_engine(database_url: str) -> Engine:
connect_args = {"check_same_thread": False} if database_url.startswith("sqlite") else {}
return create_engine(database_url, connect_args=connect_args, future=True)
def create_session_factory(engine: Engine) -> sessionmaker[Session]:
return sessionmaker(bind=engine, autoflush=False, expire_on_commit=False)
def initialize_schema(engine: Engine) -> None:
Base.metadata.create_all(engine)