#!/usr/bin/env python3 """ 创建管理员用户脚本 用于方便测试,创建用户名admin,密码admin的账户 """ import sys import os from datetime import datetime import bcrypt # 添加环境变量加载 import dotenv dotenv.load_dotenv() sys.path.append(os.path.dirname(os.path.abspath(__file__))) # 从 main.py 导入所有模型和配置 from main import ( engine, SessionLocal, Base, User, get_password_hash ) def create_tables(): """创建所有数据库表""" try: Base.metadata.create_all(bind=engine) print("✅ 所有数据库表创建成功!") except Exception as e: print(f"❌ 创建数据库表失败: {e}") raise def create_admin_user(): """创建管理员用户""" # 先创建所有表 create_tables() # 创建数据库会话 db = SessionLocal() try: # 检查admin用户是否已存在 existing_admin = db.query(User).filter(User.username == "admin").first() if existing_admin: print("❌ admin用户已存在!") # 更新密码为admin existing_admin.hashed_password = get_password_hash("admin") db.commit() print("✅ 已更新admin用户密码为'admin'") return # 检查admin@admin.com邮箱是否已存在 existing_email = db.query(User).filter(User.email == "admin@admin.com").first() if existing_email: print("❌ admin@admin.com邮箱已被使用!") return # 创建admin用户 hashed_password = get_password_hash("admin") admin_user = User( username="admin", email="admin@admin.com", hashed_password=hashed_password ) db.add(admin_user) db.commit() db.refresh(admin_user) print("✅ 成功创建admin用户!") print(" 用户名: admin") print(" 密码: admin") print(" 邮箱: admin@admin.com") print(" ID:", admin_user.id) except Exception as e: print(f"❌ 创建admin用户失败: {e}") db.rollback() finally: db.close() if __name__ == "__main__": print("🚀 开始创建admin用户...") create_admin_user() print("✨ 完成!")