wms-py/app/controllers/database_controller.py
2025-06-04 10:39:32 +08:00

44 lines
1.2 KiB
Python

from fastapi import APIRouter, Depends, Query
from sqlalchemy.orm import Session
from app.utils.database import get_db, DatabaseUtils
from typing import Optional
router = APIRouter(prefix="/database", tags=["数据库测试"])
@router.get("/test")
async def test_database_connection():
"""测试数据库连接"""
return DatabaseUtils.test_connection()
@router.get("/tables")
async def list_all_tables():
"""获取所有表名"""
return DatabaseUtils.get_all_tables()
@router.get("/query")
async def execute_query(
sql: str = Query(..., description="要执行的SQL查询语句"),
limit: int = Query(100, description="返回记录数限制", ge=1, le=1000)
):
"""执行SQL查询"""
return DatabaseUtils.execute_query(sql, limit)
@router.get("/table/{table_name}")
async def list_table_data(
table_name: str,
limit: int = Query(100, description="返回记录数限制", ge=1, le=1000)
):
"""查看指定表的数据"""
sql = f"SELECT * FROM {table_name}"
return DatabaseUtils.execute_query(sql, limit)
@router.get("/table/{table_name}/structure")
async def get_table_structure(table_name: str):
"""获取表结构"""
sql = f"DESCRIBE {table_name}"
return DatabaseUtils.execute_query(sql, 1000)