버그 수정: PostgreSQL 데이터베이스 전체 용량 조회 권한 부족 시 테이블 기준 대체 조회 적용 및 프론트엔드 에러 툴팁 보완

This commit is contained in:
2026-05-26 22:07:30 +09:00
parent db58c384f1
commit f5439b4a5b
2 changed files with 14 additions and 2 deletions
+8 -1
View File
@@ -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):
+6 -1
View File
@@ -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 || '-'}`;