Kamixitong/test_db.py
2025-11-22 20:32:49 +08:00

69 lines
2.3 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试数据库连接和登录功能
"""
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from app import create_app, db
from app.models.admin import Admin
def test_database():
"""测试数据库连接"""
print("=== 测试数据库连接 ===")
try:
app = create_app('production')
with app.app_context():
# 测试数据库连接
print(f"数据库URI: {app.config.get('SQLALCHEMY_DATABASE_URI')}")
# 尝试查询用户
admin_count = Admin.query.count()
print(f"管理员用户总数: {admin_count}")
# 查看所有用户
admins = Admin.query.all()
for admin in admins:
print(f"用户: {admin.username}, 状态: {admin.is_active}, 角色: {admin.role}")
# 测试特定用户
admin = Admin.query.filter_by(username='admin').first()
if admin:
print(f"找到admin用户: {admin.username}")
print(f"密码哈希存在: {bool(admin.password_hash)}")
print(f"用户状态: is_active={admin.is_active}, role={admin.role}")
# 测试密码验证
test_passwords = ['admin123', 'admin', '123456']
for pwd in test_passwords:
result = admin.check_password(pwd)
print(f"密码 '{pwd}' 验证结果: {result}")
else:
print("未找到admin用户")
# 创建默认用户
print("创建默认admin用户...")
new_admin = Admin(
username='admin',
email='admin@example.com',
role=1, # 超级管理员
status=1 # 激活状态
)
new_admin.set_password('admin123')
db.session.add(new_admin)
db.session.commit()
print("默认admin用户创建成功")
print("数据库连接测试完成")
except Exception as e:
print(f"数据库连接错误: {str(e)}")
import traceback
traceback.print_exc()
if __name__ == '__main__':
test_database()