本文档说明如何使用 Python 脚本导入配置数据并创建默认管理员用户,适用于在新服务器上快速部署演示系统。
功能:
- ✅ 导入配置数据(从导出的 JSON 文件)
- ✅ 创建默认管理员用户(admin/admin123)
- ✅ 支持选择性导入集合
- ✅ 支持覆盖或增量模式
适用场景:
- 在新服务器上部署演示系统
- 从旧系统迁移配置数据
- 批量导入多个集合
功能:
- ✅ 创建默认管理员用户
- ✅ 支持自定义用户名和密码
- ✅ 列出所有现有用户
适用场景:
- 全新部署,只需要创建管理员
- 忘记管理员密码,重新创建
- 创建额外的管理员账号
使用前端界面导出配置数据:
- 登录系统
- 进入:
系统管理→数据库管理 - 选择:
配置数据(用于演示系统) - 导出格式:
JSON - 下载文件:
database_export_config_2025-10-16.json
🔒 脱敏说明:选择"配置数据(用于演示系统)"导出时,系统会自动进行脱敏处理:
- ✅ 清空所有敏感字段(api_key、api_secret、password、token 等)
- ✅ users 集合只导出结构,不导出实际用户数据
- ✅ 导出的文件可以安全地用于演示、分享或公开发布
⚠️ 导入后需要重新配置 API 密钥和创建用户
# 使用 scp
scp database_export_config_2025-10-16.json user@new-server:/path/to/TradingAgents-CN/
# 或使用其他方式(FTP、云存储等)# 进入项目目录
cd /path/to/TradingAgents-CN
# 激活虚拟环境(如果使用)
source .venv/bin/activate # Linux/Mac
.\.venv\Scripts\activate # Windows
# 运行导入脚本
python scripts/import_config_and_create_user.py database_export_config_2025-10-16.json输出示例:
================================================================================
📦 导入配置数据并创建默认用户
================================================================================
🔌 连接到 MongoDB...
✅ MongoDB 连接成功
📂 加载导出文件: database_export_config_2025-10-16.json
✅ 文件加载成功
导出时间: 2025-10-16T10:30:00
导出格式: json
集合数量: 9
📋 准备导入 9 个集合:
- system_configs: 1 个文档
- users: 3 个文档
- llm_providers: 5 个文档
- market_categories: 10 个文档
- user_tags: 8 个文档
- datasource_groupings: 3 个文档
- platform_configs: 1 个文档
- user_configs: 2 个文档
- model_catalog: 15 个文档
🚀 开始导入...
模式: 增量
导入 system_configs...
✅ 插入 1 个,跳过 0 个
导入 users...
✅ 插入 3 个,跳过 0 个
...
📊 导入统计:
插入: 48 个文档
跳过: 0 个文档
👤 创建默认管理员用户...
✅ 默认管理员用户创建成功
用户名: admin
密码: admin123
邮箱: admin@tradingagents.cn
角色: 管理员
================================================================================
✅ 操作完成!
================================================================================
🔐 登录信息:
用户名: admin
密码: admin123
📝 后续步骤:
1. 重启后端服务: docker restart tradingagents-backend
2. 访问前端并使用默认账号登录
3. 检查系统配置是否正确加载
docker restart tradingagents-backend- 访问前端:
http://new-server:3000 - 使用默认账号登录:
- 用户名:
admin - 密码:
admin123
- 用户名:
- 检查系统配置页面,确认 LLM 配置已导入
如果您只需要创建默认管理员用户(不导入配置数据):
# 创建默认管理员(admin/admin123)
python scripts/create_default_admin.py输出示例:
================================================================================
👤 创建默认管理员用户
================================================================================
🔌 连接到 MongoDB...
✅ MongoDB 连接成功
✅ 管理员用户创建成功
用户名: admin
密码: admin123
邮箱: admin@tradingagents.cn
角色: 管理员
配额: 10000 次/天
并发: 10 个
📋 当前用户列表 (1 个):
用户名 邮箱 角色 状态 创建时间
------------------------------------------------------------------------------------------
admin admin@tradingagents.cn 管理员 激活 2025-10-16 10:30
================================================================================
✅ 操作完成!
================================================================================
🔐 登录信息:
用户名: admin
密码: admin123
📝 后续步骤:
1. 访问前端并使用上述账号登录
2. 建议登录后立即修改密码
# 覆盖模式:删除现有数据后导入
python scripts/import_config_and_create_user.py export.json --overwrite# 只导入系统配置和用户数据
python scripts/import_config_and_create_user.py export.json --collections system_configs users# 跳过创建默认用户
python scripts/import_config_and_create_user.py export.json --skip-user# 只创建默认用户
python scripts/import_config_and_create_user.py --create-user-only# 创建自定义管理员
python scripts/create_default_admin.py --username myuser --password mypass123 --email myuser@example.com# 覆盖已存在的 admin 用户
python scripts/create_default_admin.py --overwrite# 列出所有用户
python scripts/create_default_admin.py --list脚本默认使用以下连接配置:
MONGO_URI = "mongodb://admin:tradingagents123@localhost:27017/tradingagents?authSource=admin"
DB_NAME = "tradingagents"如果您的 MongoDB 配置不同,请修改脚本中的配置:
# 修改 scripts/import_config_and_create_user.py
# 或 scripts/create_default_admin.py
MONGO_URI = "mongodb://your_user:your_pass@your_host:27017/your_db?authSource=admin"
DB_NAME = "your_db"脚本默认创建以下管理员用户:
DEFAULT_ADMIN = {
"username": "admin",
"password": "admin123",
"email": "admin@tradingagents.cn"
}用户属性:
- ✅ 管理员权限(
is_admin: true) - ✅ 已激活(
is_active: true) - ✅ 已验证(
is_verified: true) - ✅ 每日配额:10000 次
- ✅ 并发限制:10 个
确保 MongoDB 容器正在运行:
# 检查 MongoDB 状态
docker ps | grep mongodb
# 如果未运行,启动 MongoDB
docker start tradingagents-mongodb脚本使用 SHA256 哈希密码,与系统保持一致:
def hash_password(password: str) -> str:
return hashlib.sha256(password.encode()).hexdigest()脚本会自动转换以下数据类型:
- ✅ ObjectId(
_id字段) - ✅ 日期时间(
*_at字段) - ✅ 嵌套文档和数组
| 模式 | 行为 | 适用场景 |
|---|---|---|
| 增量(默认) | 跳过已存在的文档 | 首次导入、追加数据 |
覆盖(--overwrite) |
删除现有数据后导入 | 完全替换、重新部署 |
脚本根据以下字段检查文档是否已存在:
_id(如果存在)username(用户集合)name(其他集合)
错误信息:
❌ 错误: MongoDB 连接失败: ...
解决方案:
# 1. 检查 MongoDB 是否运行
docker ps | grep mongodb
# 2. 检查 MongoDB 日志
docker logs tradingagents-mongodb --tail 50
# 3. 测试连接
docker exec -it tradingagents-mongodb mongo -u admin -p tradingagents123 --authenticationDatabase admin错误信息:
❌ 错误: 文件格式不正确,缺少 export_info 或 data 字段
解决方案:
- 确保使用系统导出的 JSON 文件
- 检查文件是否完整(未损坏)
- 使用文本编辑器查看文件结构
错误信息:
⚠️ 用户 'admin' 已存在
解决方案:
# 方法 1:使用覆盖模式
python scripts/create_default_admin.py --overwrite
# 方法 2:创建不同的用户名
python scripts/create_default_admin.py --username admin2 --password admin123
# 方法 3:手动删除用户
docker exec -it tradingagents-mongodb mongo tradingagents \
-u admin -p tradingagents123 --authenticationDatabase admin \
--eval "db.users.deleteOne({username: 'admin'})"解决方案:
# 1. 重启后端服务
docker restart tradingagents-backend
# 2. 检查后端日志
docker logs tradingagents-backend --tail 100
# 3. 验证数据是否导入
docker exec -it tradingagents-mongodb mongo tradingagents \
-u admin -p tradingagents123 --authenticationDatabase admin \
--eval "db.system_configs.countDocuments()"# 在新服务器上导入前,先备份现有数据
docker exec tradingagents-mongodb mongodump \
-u admin -p tradingagents123 --authenticationDatabase admin \
-d tradingagents -o /tmp/backup
docker cp tradingagents-mongodb:/tmp/backup ./backup_before_import# 检查集合数量
docker exec -it tradingagents-mongodb mongo tradingagents \
-u admin -p tradingagents123 --authenticationDatabase admin \
--eval "db.getCollectionNames().length"
# 检查 LLM 配置
docker exec -it tradingagents-mongodb mongo tradingagents \
-u admin -p tradingagents123 --authenticationDatabase admin \
--eval "var config = db.system_configs.findOne({is_active: true}); print('LLM 数量: ' + config.llm_configs.filter(c => c.enabled).length);"导入后,建议立即修改默认管理员密码:
- 登录系统
- 进入:
个人中心→修改密码 - 输入新密码并保存
使用 Python 脚本导入配置数据的优势:
✅ 自动化:无需手动操作前端界面
✅ 批量处理:一次导入多个集合
✅ 灵活控制:支持增量/覆盖模式
✅ 默认用户:自动创建管理员账号
✅ 易于集成:可集成到部署脚本中
现在您可以使用 Python 脚本快速在新服务器上部署演示系统了!🚀