datai/docs/archive/changelog/20260119-version-rollback.md

5.1 KiB
Raw Permalink Blame History

Changelog - 版本回溯功能

变更信息

  • 版本号: v0.0.23
  • 发布日期: 2026-01-19
  • 变更类型: 特性更新

变更摘要

本次变更实现了版本回溯功能,支持查看和恢复历史版本的元数据文件。包括版本历史记录、版本对比、版本恢复、版本回滚。复用现有的 IFileStorageService、IMetadataRetrieveService、IMetadataDeployService 服务接口,保持代码一致性。

详细变更

特性更新

  • 版本历史记录 - 实现了版本历史记录功能,记录每次拉取和部署的版本,使用 MyBatis Plus 的 BaseMapper 实现版本历史记录,使用时间戳记录版本
  • 版本对比 - 实现了版本对比功能,对比不同版本的元数据文件,使用 Google Diff Match Patch 库实现 Diff 算法,使用哈希值对比文件差异,支持差异高亮显示
  • 版本恢复 - 实现了版本恢复功能,恢复到指定的历史版本,使用历史版本的文件进行恢复,使用 @Transactional 注解确保恢复原子性
  • 版本回滚 - 实现了版本回滚功能,回滚到上一个版本,使用上一个版本的文件进行回滚,使用 @Transactional 注解确保回滚原子性

Bug 修复

性能优化

  • 索引优化 - 为 task_id、org_config_id、file_path、version_time 字段创建索引,提高查询性能
  • 分页查询优化 - 使用 MyBatis Plus 的分页插件实现分页查询,避免一次性加载大量数据
  • 异步执行优化 - 使用 Spring 的 @Async 注解实现异步执行,避免阻塞主线程
  • 缓存优化 - 使用缓存存储版本信息,提高查询性能

安全修复

  • 认证安全 - 版本回溯操作需要认证,使用 SessionManager 进行会话管理
  • 数据安全 - 版本恢复和回滚操作需要权限控制,敏感信息不记录到日志
  • 权限控制 - 版本回溯操作权限控制
  • 事务安全 - 使用 @Transactional 注解确保恢复和回滚的原子性

其他变更

  • 配置文件更新 - 新增线程池配置 versionExecutor用于版本恢复和回滚
  • 依赖更新 - 新增 Google Diff Match Patch 依赖,用于版本对比
  • 数据库表新增 - 新增 datai_metadata_version 表,存储版本历史信息

影响范围

受影响的模块

  • datai-salesforce-metadata - 新增 version-rollback 包包含版本回溯相关的服务、控制器、DTO、实体、Mapper、工具类影响程度新增功能不影响现有功能
  • application.yml - 新增线程池配置 versionExecutor用于版本恢复和回滚
  • pom.xml - 新增 Google Diff Match Patch 依赖,用于版本对比
  • 数据库 - 新增 datai_metadata_version 表,存储版本历史信息

兼容性说明

  • 向后兼容 - 本次变更不影响现有功能,向后兼容
  • 配置兼容 - 新增线程池配置 versionExecutor不影响现有配置
  • 依赖兼容 - 新增 Google Diff Match Patch 依赖,不影响现有依赖

升级指南

升级步骤

  1. 更新代码 - 拉取最新代码,包含新增的版本回溯功能
  2. 更新依赖 - 添加 Google Diff Match Patch 依赖
  3. 更新数据库 - 执行数据库迁移脚本,创建 datai_metadata_version 表,为 task_id、org_config_id、file_path、version_time 字段创建索引
  4. 更新配置 - 新增线程池配置 versionExecutor用于版本恢复和回滚
  5. 重启应用 - 重启应用,使代码生效
  6. 验证功能 - 验证版本回溯功能是否正常工作

注意事项

  • 版本记录 - 系统会自动记录版本信息,无需手动操作
  • 版本对比 - 版本对比使用 Diff 算法和哈希值对比两种方式,确保对比准确
  • 版本恢复 - 版本恢复需要选择历史版本,恢复前会备份当前版本
  • 版本回滚 - 版本回滚会回滚到上一个版本,回滚前会备份当前版本
  • 存储空间 - 版本历史记录会占用存储空间,建议定期清理过期的版本历史记录

测试信息

测试环境

  • 开发环境 - Windows 10Java 17Spring Boot 3
  • 测试环境 - LinuxJava 17Spring Boot 3

测试结果

  • 单元测试 - 所有单元测试通过,测试覆盖率 > 80%
  • 集成测试 - 所有集成测试通过,功能正常
  • 性能测试 - 版本历史记录查询响应时间 < 1s版本对比响应时间 < 500ms版本恢复响应时间 < 5s版本回滚响应时间 < 5s
  • 并发测试 - 并发查询 100 次无性能下降,并发恢复 10 次无性能下降
  • 安全测试 - 版本回溯操作需要认证,会话管理正常,版本恢复和回滚操作需要权限控制,敏感信息不记录到日志

相关链接

发布人员