datai/docs/archive/changelog/2026-01-24-002-changelog.md

4.5 KiB
Raw Blame History

变更日志

元数据

  • 需求编号: 2026-01-24-002
  • 创建时间: 2026-01-24
  • 创建人: SSOT 架构师
  • 版本号: v1.0.0

变更概述

实现环境从库初始化功能,允许为环境配置自动创建对应的从库数据源。该功能包括数据库创建、配置写入、数据源注册、连接验证等步骤,并确保从库一经创建不允许修改或删除。

变更内容

新增功能

  • 实现环境从库初始化功能,包括:
    • 从配置文件读取主库配置application-druid.yml
    • 生成从库名称slave_环境编码
    • 检查数据源名称是否已存在
    • 使用 JDBC 创建数据库字符集utf8mb4排序规则utf8mb4_general_ci
    • 写入数据源配置表
    • 注册数据源到 DataSourceManager
    • 切换到从库
    • 验证连接有效性
    • 切换回主库
    • 使用 Spring 事务保证原子性,验证失败时自动回滚
    • 从库一经创建,不允许任何修改、删除或重新初始化

新增代码文件

  • datai-system/src/main/java/com/datai/system/service/ISysDatasourceConfigService.java

    • 新增方法:createSlaveDatabase(String environmentCode)
  • datai-system/src/main/java/com/datai/system/service/impl/SysDatasourceConfigServiceImpl.java

    • 新增方法:createSlaveDatabase(String environmentCode)
    • 新增辅助方法:extractDbNameFromUrl(String jdbcUrl)
    • 新增辅助方法:extractHostFromUrl(String jdbcUrl)
    • 新增辅助方法:extractPortFromUrl(String jdbcUrl)
    • 新增辅助方法:extractDbTypeFromUrl(String jdbcUrl)
  • datai-scenes/datai-scene-salesforce/datai-salesforce-setting/src/main/java/com/datai/setting/service/IDataiConfigEnvironmentService.java

    • 新增方法:initSlaveDatasource(String environmentCode)
  • datai-scenes/datai-scene-salesforce/datai-salesforce-setting/src/main/java/com/datai/setting/service/impl/DataiConfigEnvironmentServiceImpl.java

    • 新增方法:initSlaveDatasource(String environmentCode)
  • datai-scenes/datai-scene-salesforce/datai-salesforce-setting/src/main/java/com/datai/setting/controller/DataiConfigEnvironmentController.java

    • 新增方法:initSlaveDatasource(String environmentCode)
    • 接口路径:POST /setting/environment/initSlave
    • 权限注解:@PreAuthorize("@ss.hasPermi('setting:environment:initSlave')")
    • 日志注解:@Log(title = "配置环境", businessType = BusinessType.OTHER)

修改代码文件

  • datai-scenes/datai-scene-salesforce/datai-salesforce-setting/src/main/java/com/datai/setting/model/domain/DataiConfigEnvironment.java
    • 新增字段:datasourceIdLong 类型)
    • 新增 getter/setter 方法
    • 新增 Swagger 注解:@Schema(title = "数据源ID")
    • 新增 Excel 注解:@Excel(name = "数据源ID")

数据库变更

  • 修改表:datai_config_environment
    • 新增字段:datasource_idBIGINT 类型)
    • 新增索引:idx_datasource_id(针对 datasource_id 字段)

新增文档

影响范围

  • 模块: datai-system、datai-salesforce-setting
  • 功能: 环境配置管理、数据源管理
  • 文件: 5 个修改文件
  • 数据库: 1 个表修改datai_config_environment
  • 接口: 1 个新增接口POST /setting/environment/initSlave

相关文档