버그 수정: PostgreSQL 데이터베이스 전체 용량 조회 권한 부족 시 테이블 기준 대체 조회 적용 및 프론트엔드 에러 툴팁 보완
This commit is contained in:
@@ -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)):
|
async def get_database_size(db: Session = Depends(get_db), current_user = Depends(get_current_user)):
|
||||||
try:
|
try:
|
||||||
dialect = db.get_bind().dialect.name
|
dialect = db.get_bind().dialect.name
|
||||||
|
size_bytes = 0
|
||||||
if dialect == "postgresql":
|
if dialect == "postgresql":
|
||||||
|
try:
|
||||||
size_bytes = int(db.execute(text("SELECT pg_database_size(current_database())")).scalar() or 0)
|
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":
|
elif dialect == "sqlite":
|
||||||
database_path = db.get_bind().url.database or "app.db"
|
database_path = db.get_bind().url.database or "app.db"
|
||||||
if not os.path.isabs(database_path):
|
if not os.path.isabs(database_path):
|
||||||
|
|||||||
+6
-1
@@ -123,7 +123,12 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
try {
|
try {
|
||||||
const response = await fetch(appUrl('/api/settings/database-size'));
|
const response = await fetch(appUrl('/api/settings/database-size'));
|
||||||
if (!response.ok) {
|
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();
|
const data = await response.json();
|
||||||
dbSizeBadge.textContent = `DB ${data.formatted || '-'}`;
|
dbSizeBadge.textContent = `DB ${data.formatted || '-'}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user