29 lines
732 B
Python
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)
|