#!/usr/bin/env python3 """ 初始化数据库,创建默认管理员账号和角色 """ from sqlalchemy.orm import Session from app.models.database import engine, Base, SessionLocal from app.models.models import User from app.services.user import UserService def init_db(): """初始化数据库""" # 创建所有表 print("创建数据库表...") Base.metadata.create_all(bind=engine) print("数据库表创建完成") # 初始化默认角色 print("\n初始化默认角色...") db = SessionLocal() try: # 初始化默认角色 UserService.init_default_roles(db) print("✅ 默认角色初始化完成") # 获取默认角色 admin_role = UserService.get_role_by_name(db, "admin") user_role = UserService.get_role_by_name(db, "user") if not admin_role or not user_role: print("❌ 默认角色创建失败") return # 创建默认管理员账号 print("\n创建默认管理员账号...") # 检查是否已存在管理员账号 admin_user = db.query(User).filter(User.username == "admin").first() if not admin_user: # 创建默认管理员账号 admin_user = User( id="user-admin", username="admin", email="admin@example.com", password_hash=UserService.get_password_hash("admin123"), role_id=admin_role.id, status="active" ) db.add(admin_user) db.commit() db.refresh(admin_user) print("✅ 默认管理员账号创建成功") print(f"用户名: admin") print(f"密码: admin123") else: print("⚠️ 管理员账号已存在") finally: db.close() if __name__ == "__main__": init_db()