matinsn2000's picture
boilerplate for api gateways
c6706bd
raw
history blame
687 Bytes
"""Database configuration and session management"""
from sqlmodel import SQLModel, create_engine, Session
from typing import Generator
import os
DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///./photos.db")
# SQLite-specific connect_args
connect_args = {"check_same_thread": False} if "sqlite" in DATABASE_URL else {}
engine = create_engine(
DATABASE_URL,
echo=False,
connect_args=connect_args,
)
def create_db_and_tables():
"""Create all database tables"""
SQLModel.metadata.create_all(engine)
def get_session() -> Generator[Session, None, None]:
"""Dependency for getting database session"""
with Session(engine) as session:
yield session