File size: 891 Bytes
9e6ee24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from pathlib import Path
from app.database import Base, engine, SessionLocal
from app.repository import list_objects, latest_runs
from app.scripts.seed_synthetic import main as seed_main
from app.scripts.train_baseline import run_training
from app.services import scoring_cycle, demo_objects

def bootstrap_if_needed():
    Base.metadata.create_all(bind=engine)
    model_path = Path(__file__).resolve().parents[2] / "models" / "baseline_model.joblib"
    db = SessionLocal()
    try:
        has_objects = bool(list_objects(db, 5))
    finally:
        db.close()
    if not has_objects:
        seed_main()
    if not model_path.exists():
        run_training()
    db = SessionLocal()
    try:
        if not latest_runs(db, 1):
            scoring_cycle(db, demo_objects(db), source="bootstrap-demo")
    finally:
        db.close()

if __name__ == "__main__":
    bootstrap_if_needed()