Files
mywhoosh2garmin/app/db/session.py
2026-08-15 09:18:57 +02:00

19 lines
615 B
Python

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)