温馨提示×

ubuntu如何调试sqladmin错误

小樊
53
2026-09-09 17:57:01
栏目: 云计算

在 Ubuntu 上调试 sqladmin(通常指基于 Python 的 SQLAdmin,或某些 Web 管理工具)错误,可以按下面系统化的步骤来定位和解决问题。


一、确认你用的是哪种 sqladmin

先明确环境,不同场景调试方式不同:

  1. Python SQLAdmin(FastAPI / Starlette)
    pip show sqladmin
    
  2. 系统级 sqladmin(较少见)
    which sqladmin
    

二、查看错误来源(最重要)

1. 前端/接口报错

如果是 Web 页面报错:

  • 打开浏览器 开发者工具(F12)
  • 查看:
    • Network(请求状态码:500 / 403 / 404)
    • Console(JS 错误)

2. 后端日志(核心)

在 Ubuntu 终端运行服务时,不要后台运行,直接前台启动看日志:

uvicorn main:app --reload

或:

python main.py

观察输出中的:

  • Traceback
  • SQLAlchemy 错误
  • KeyError / AttributeError

三、常见错误及调试方法

✅ 1. 数据库连接失败

错误示例:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError)

调试:

psql -h localhost -U user -d dbname

或 MySQL:

mysql -u user -p -h localhost

检查:

  • 数据库是否启动
sudo systemctl status postgresql
sudo systemctl status mysql

✅ 2. SQLAdmin 未正确挂载

FastAPI 示例:

from sqladmin import Admin
admin = Admin(app, engine)

检查:

  • /admin 是否可访问
  • 是否在 app 初始化之后挂载

✅ 3. 模型未注册

错误:

No model registered

解决:

class UserAdmin(ModelView, model=User):
    pass

admin.add_view(UserAdmin)

✅ 4. 权限 / 认证问题

如果你加了登录:

admin = Admin(app, engine, authentication_backend=...)

调试:

  • 临时关闭认证
  • 查看 401 / 403 日志

四、开启 DEBUG 模式

FastAPI

app = FastAPI(debug=True)

SQLAlchemy 日志

import logging
logging.basicConfig()
logging.getLogger("sqlalchemy.engine").setLevel(logging.INFO)

可以看到真实 SQL。


五、Ubuntu 系统级排查

端口占用

sudo lsof -i:8000

防火墙

sudo ufw status

Python 环境

python -V
pip list | grep sqladmin

六、最小可运行示例(用于验证)

from fastapi import FastAPI
from sqladmin import Admin, ModelView
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base

engine = create_engine("sqlite:///test.db")
Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String)

Base.metadata.create_all(engine)

app = FastAPI()
admin = Admin(app, engine)

class UserAdmin(ModelView, model=User):
    pass

admin.add_view(UserAdmin)

七、如果还无法解决

请补充以下信息,我可以精准帮你:

  1. sqladmin 类型(FastAPI?)
  2. 完整报错(Traceback)
  3. 数据库类型(MySQL / PostgreSQL / SQLite)
  4. Ubuntu 版本

这样我能直接定位问题。

0 踩