PetAgent/create_admin_user.py
2026-04-12 11:32:37 +08:00

70 lines
2.3 KiB
Python

"""
Script to create an admin user for the AI Pet Companion Platform
"""
import asyncio
import sys
import os
from datetime import datetime
# 添加backend目录到路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))
from models.database import init_db, User, AsyncSessionFactory
from utils.security import hash_password
from utils.db_utils import UserManager
async def create_admin_user():
"""Create an admin user with specified credentials"""
# 初始化数据库表
print("Initializing database...")
await init_db()
# 创建数据库会话
async with AsyncSessionFactory() as session:
user_manager = UserManager(session)
# 管理员用户信息
admin_phone = "13800138888" # 管理员手机号
admin_password = "admin123" # 管理员密码
admin_nickname = "管理员"
admin_uid = "admin_user_001"
print(f"Creating admin user with phone: {admin_phone}")
# 检查用户是否已存在
existing_user = await user_manager.get_by_phone(admin_phone)
if existing_user:
print(f"Admin user with phone {admin_phone} already exists!")
print(f"Updating existing user to admin role...")
# 更新现有用户为管理员
existing_user.role = 2 # 管理员角色
existing_user.nickname = admin_nickname
updated_user = await user_manager.update(existing_user)
print(f"Updated user {updated_user.phone} to admin role")
else:
# 创建新管理员用户
admin_user = User(
phone=admin_phone,
password_hash=hash_password(admin_password),
nickname=admin_nickname,
uid=admin_uid,
status=1, # 正常状态
role=2 # 管理员角色
)
created_user = await user_manager.create(admin_user)
print(f"Created admin user: {created_user.phone}")
print(f"Admin user setup completed!")
print(f"Phone: {admin_phone}")
print(f"Password: {admin_password}")
print(f"Role: Administrator")
if __name__ == "__main__":
asyncio.run(create_admin_user())