fix: add back DB init endpoints, ref NOISSUE

This commit is contained in:
2026-04-04 23:34:29 +02:00
parent 08af3ed38d
commit 5eb5bd426a
2 changed files with 25 additions and 11 deletions

View File

@@ -20,17 +20,23 @@ def create_dashboard():
return
try:
# Fetch current project
current_project = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).first()
# Wrap database queries to handle missing tables gracefully
try:
# Fetch current project
current_project = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).first()
# Fetch recent audit trail entries
recent_audits = db_session.query(AuditTrail).order_by(AuditTrail.created_at.desc()).limit(10).all()
# Fetch recent audit trail entries
recent_audits = db_session.query(AuditTrail).order_by(AuditTrail.created_at.desc()).limit(10).all()
# Fetch recent project history entries
recent_projects = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).limit(5).all()
# Fetch recent project history entries
recent_projects = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).limit(5).all()
# Fetch recent system logs
recent_logs = db_session.query(SystemLog).order_by(SystemLog.created_at.desc()).limit(5).all()
# Fetch recent system logs
recent_logs = db_session.query(SystemLog).order_by(SystemLog.created_at.desc()).limit(5).all()
except Exception as e:
# Handle missing tables or other database errors
ui.label(f'Database error: {str(e)}. Please run POST /init-db or ensure the database is initialized.')
return
# Create main card
with ui.card().col().classes('w-full max-w-6xl mx-auto').props('elevated').style('max-width: 1200px; margin: 0 auto;') as main_card:

View File

@@ -13,6 +13,7 @@ The NiceGUI frontend provides:
import frontend
from fastapi import FastAPI
from database import init_db
app = FastAPI()
@@ -23,6 +24,13 @@ def read_root():
return {'Hello': 'World'}
@app.post('/init-db')
def initialize_database():
"""Initialize database tables (POST endpoint for NiceGUI to call before dashboard)."""
init_db()
return {'message': 'Database initialized successfully'}
frontend.init(app)
if __name__ == '__main__':