Files
fridge-tracker/app/db.py
2026-04-09 14:06:19 +01:00

29 lines
732 B
Python

from pathlib import Path
from flask import Flask
from sqlalchemy import create_engine
from sqlalchemy.orm import DeclarativeBase, Session, scoped_session, sessionmaker
engine = None
SessionLocal: scoped_session[Session]
class Base(DeclarativeBase):
pass
def init_db(app: Flask) -> None: # noqa: ARG001
global engine, SessionLocal # noqa: PLW0603
Path("./instance").mkdir(exist_ok=True)
engine = create_engine("sqlite:///instance/app.db", echo=True, future=True)
session_local = scoped_session(sessionmaker(bind=engine))
if session_local is None:
raise RuntimeError
SessionLocal = session_local
from . import models # noqa: F401, PLC0415
Base.metadata.create_all(bind=engine)