Files
liederwahl/app/database.py
matthias@matsewe.de 9c57123a48 update logging etc
2024-06-06 16:22:14 +02:00

27 lines
673 B
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, DeclarativeBase
from sqlalchemy.types import PickleType, JSON
import os
SQLALCHEMY_DATABASE_URL = "sqlite:///" + os.environ.get("DATABASE_URL", "/data/db.sqlite")
engine = create_engine(
SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
async def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
class Base(DeclarativeBase):
type_annotation_map = {
dict[str, bool]: PickleType,
object: PickleType,
list[str]: JSON
}