Files

61 lines
2.0 KiB
Python

#!/usr/bin/env python3
"""
在正式服务器上执行:将 admin001 设为管理后台管理员
运行方式:
1. SSH 到堡垒机,再 SSH 到 10.90.5.110
2. 进入部署目录:cd /opt/wecom-it-desk
3. 执行:docker exec -i wecom_it_backend python /app/scripts/set_admin.py
(如果脚本不在容器内,可先 docker cp 进去,或用下面的 SQL 方式)
"""
import sys
import os
# 方法一:直接通过 SQLAlchemy 写入数据库(在容器内执行)
from sqlalchemy import create_engine, text
from sqlalchemy.orm import sessionmaker
import uuid
# 从环境变量读取数据库配置
DB_URL = os.environ.get(
"DATABASE_URL",
"postgresql://wecom:wecom_secret_2026@postgres:5432/wecom_it_desk"
)
engine = create_engine(DB_URL)
Session = sessionmaker(bind=engine)
session = Session()
# 检查 agents 表中是否已有 admin001
result = session.execute(
text("SELECT id, user_id, name, role FROM agents WHERE user_id = :uid"),
{"uid": "admin001"}
).fetchone()
if result:
agent_id, user_id, name, role = result
print(f"✅ 已存在记录:id={agent_id}, user_id={user_id}, name={name}, role={role}")
if role != "admin":
session.execute(
text("UPDATE agents SET role = 'admin' WHERE user_id = :uid"),
{"uid": "admin001"}
)
session.commit()
print(f"✅ 已将 {user_id} 角色更新为 admin")
else:
print(f"ℹ️ 角色已经是 admin,无需修改")
else:
# 不存在则创建
new_id = str(uuid.uuid4())
session.execute(
text(
"INSERT INTO agents (id, user_id, name, status, current_load, max_load, role, skill_tags, created_at, updated_at) "
"VALUES (:id, :uid, :name, 'offline', 0, 5, 'admin', '[]', NOW(), NOW())"
),
{"id": new_id, "uid": "admin001", "name": "系统管理员"}
)
session.commit()
print(f"✅ 已创建管理员记录:id={new_id}, user_id=admin001, role=admin")
session.close()
print("\n完成。")