From e49e606343e0302614caa7e4cb6f58e413031c25 Mon Sep 17 00:00:00 2001 From: warnason <276599704+warnason@users.noreply.github.com> Date: Mon, 20 Apr 2026 18:48:00 +0200 Subject: [PATCH] Add database auto-creation on startup --- backend/app/main.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/backend/app/main.py b/backend/app/main.py index 84c6263..b6952e4 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,19 +1,35 @@ """BIM Twin Viewer — FastAPI application entry point.""" +from contextlib import asynccontextmanager + from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api import health, elements, upload +from app.models.database import engine, Base + +# Import all models so Base.metadata knows about them +from app.models import element # noqa: F401 + + +@asynccontextmanager +async def lifespan(app: FastAPI): + """Create database tables on startup.""" + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) + yield + app = FastAPI( title="BIM Twin Viewer API", description="REST API for IFC-based 3D building model inspection", version="0.1.0", + lifespan=lifespan, ) app.add_middleware( CORSMiddleware, - allow_origins=["*"], # tighten in production + allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"],