4.6 KiB
4.6 KiB
萌芽农场 MongoDB 迁移说明
概述
本文档描述了萌芽农场项目从JSON配置文件迁移到MongoDB数据库的过程。目前已完成每日签到配置的迁移,为后续其他配置的迁移奠定了基础。
迁移内容
1. 已完成的迁移
每日签到配置 (daily_checkin_config.json)
- 原位置:
Server/config/daily_checkin_config.json - 新位置: MongoDB数据库
mengyafarm.gameconfig集合 - 文档ID:
687cce278e77ba00a7414ba2 - 状态: ✅ 已完成迁移
2. 数据库配置
测试环境
- 地址:
localhost:27017 - 数据库:
mengyafarm - 集合:
gameconfig
生产环境
- 地址:
192.168.31.233:27017 - 数据库:
mengyafarm - 集合:
gameconfig
技术实现
1. MongoDB API (SMYMongoDBAPI.py)
创建了专门的MongoDB API类,提供以下功能:
核心功能
- 数据库连接管理(测试/生产环境)
- 游戏配置的读取和更新
- 通用文档操作(增删改查)
- 错误处理和日志记录
主要方法
# 配置管理
get_daily_checkin_config() # 获取每日签到配置
update_daily_checkin_config() # 更新每日签到配置
get_game_config(config_type) # 获取通用游戏配置
set_game_config(config_type, data) # 设置通用游戏配置
# 通用操作
insert_document(collection, doc) # 插入文档
find_documents(collection, query) # 查找文档
update_document(collection, query, update) # 更新文档
delete_document(collection, query) # 删除文档
2. 服务器集成 (TCPGameServer.py)
修改内容
- 添加MongoDB API导入和初始化
- 修改
_load_daily_check_in_config()方法,优先使用MongoDB - 添加
_update_daily_checkin_config_to_mongodb()方法 - 实现优雅降级:MongoDB失败时自动回退到JSON文件
配置加载策略
- 优先: 尝试从MongoDB获取配置
- 备选: 从JSON文件加载配置
- 兜底: 使用默认配置
测试验证
1. MongoDB API测试
运行 python SMYMongoDBAPI.py 进行基础功能测试
2. 迁移功能测试
运行 python test_mongodb_migration.py 进行完整迁移测试
3. 服务器集成测试
运行 python test_server_mongodb.py 进行服务器集成测试
使用说明
1. 环境配置
测试环境
api = SMYMongoDBAPI("test") # 连接到 localhost:27017
生产环境
api = SMYMongoDBAPI("production") # 连接到 192.168.31.233:27017
2. 获取配置
# 获取每日签到配置
config = api.get_daily_checkin_config()
# 获取通用游戏配置
config = api.get_game_config("config_type")
3. 更新配置
# 更新每日签到配置
success = api.update_daily_checkin_config(new_config)
# 设置通用游戏配置
success = api.set_game_config("config_type", config_data)
后续迁移计划
1. 待迁移的配置文件
item_config.json- 道具配置pet_data.json- 宠物配置- 其他游戏配置文件
2. 迁移步骤
- 将JSON文件导入到MongoDB
- 修改对应的加载方法
- 添加更新方法
- 编写测试用例
- 验证功能正常
3. 迁移原则
- 渐进式迁移: 一次迁移一个配置文件
- 向后兼容: 保持JSON文件作为备选方案
- 充分测试: 每个迁移都要有完整的测试覆盖
- 文档更新: 及时更新相关文档
注意事项
1. 数据安全
- 定期备份MongoDB数据
- 重要配置修改前先备份
- 测试环境验证后再应用到生产环境
2. 性能考虑
- MongoDB连接池管理
- 配置缓存策略
- 错误重试机制
3. 监控和日志
- 记录配置加载来源
- 监控MongoDB连接状态
- 记录配置更新操作
故障排除
1. MongoDB连接失败
- 检查MongoDB服务是否启动
- 验证连接地址和端口
- 检查网络连接
2. 配置加载失败
- 检查MongoDB中是否存在对应文档
- 验证文档格式是否正确
- 查看服务器日志获取详细错误信息
3. 配置更新失败
- 检查MongoDB权限
- 验证更新数据格式
- 确认文档ID是否正确
总结
本次迁移成功实现了每日签到配置从JSON文件到MongoDB的迁移,建立了完整的MongoDB API框架,为后续其他配置的迁移提供了可靠的基础。迁移过程采用了渐进式和向后兼容的策略,确保了系统的稳定性和可靠性。
通过测试验证,MongoDB迁移功能运行正常,服务器能够正确使用MongoDB中的配置数据,同时保持了JSON文件的备选方案,为后续的全面迁移奠定了坚实的基础。