diff --git a/app/routers/settings.py b/app/routers/settings.py index e64ac76..d44210e 100644 --- a/app/routers/settings.py +++ b/app/routers/settings.py @@ -381,8 +381,15 @@ async def log_ui_event(data: UiEventRequest, current_user = Depends(get_current_ async def get_database_size(db: Session = Depends(get_db), current_user = Depends(get_current_user)): try: dialect = db.get_bind().dialect.name + size_bytes = 0 if dialect == "postgresql": - size_bytes = int(db.execute(text("SELECT pg_database_size(current_database())")).scalar() or 0) + try: + size_bytes = int(db.execute(text("SELECT pg_database_size(current_database())")).scalar() or 0) + except Exception: + try: + size_bytes = int(db.execute(text("SELECT pg_total_relation_size('orders')")).scalar() or 0) + except Exception: + size_bytes = 0 elif dialect == "sqlite": database_path = db.get_bind().url.database or "app.db" if not os.path.isabs(database_path): diff --git a/static/js/app.js b/static/js/app.js index 76823cb..ada9cf5 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -123,7 +123,12 @@ document.addEventListener('DOMContentLoaded', () => { try { const response = await fetch(appUrl('/api/settings/database-size')); if (!response.ok) { - throw new Error('DB 용량 조회 실패'); + let errMsg = 'DB 용량 조회 실패'; + try { + const errData = await response.json(); + errMsg = errData.detail || errMsg; + } catch (_) {} + throw new Error(errMsg); } const data = await response.json(); dbSizeBadge.textContent = `DB ${data.formatted || '-'}`;