89 lines
4.5 KiB
Markdown
89 lines
4.5 KiB
Markdown
# 变更日志
|
||
|
||
## 元数据
|
||
- **需求编号**: 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`
|
||
- 新增字段:`datasourceId`(Long 类型)
|
||
- 新增 getter/setter 方法
|
||
- 新增 Swagger 注解:`@Schema(title = "数据源ID")`
|
||
- 新增 Excel 注解:`@Excel(name = "数据源ID")`
|
||
|
||
### 数据库变更
|
||
- 修改表:`datai_config_environment`
|
||
- 新增字段:`datasource_id`(BIGINT 类型)
|
||
- 新增索引:`idx_datasource_id`(针对 datasource_id 字段)
|
||
|
||
### 新增文档
|
||
- [需求文档](../requirements/2026-01-24-002-环境从库初始化.md)
|
||
- [设计文档](../design/2026-01-24-002-环境从库初始化设计.md)
|
||
- [决策记录](../decisions/adr/2026-01-24-002-ADR-环境从库初始化.md)
|
||
- [SQL 脚本](../sql/2026-01-24-002-datai_config_environment_datasourceId.sql)
|
||
- [提示词文档](../prompts/2026-01-24-002-prompt-环境从库初始化.md)
|
||
- [参考代码文档](../reference-code/2026-01-24-002-code-环境从库初始化.md)
|
||
- [实施方案文档](../implementation/2026-01-24-002-implementation-环境从库初始化.md)
|
||
- [会话记录](../sessions/2026-01-24-002-session.md)
|
||
|
||
## 影响范围
|
||
- **模块**: datai-system、datai-salesforce-setting
|
||
- **功能**: 环境配置管理、数据源管理
|
||
- **文件**: 5 个修改文件
|
||
- **数据库**: 1 个表修改(datai_config_environment)
|
||
- **接口**: 1 个新增接口(POST /setting/environment/initSlave)
|
||
|
||
## 相关文档
|
||
- [需求文档](../requirements/2026-01-24-002-环境从库初始化.md)
|
||
- [设计文档](../design/2026-01-24-002-环境从库初始化设计.md)
|
||
- [决策记录](../decisions/adr/2026-01-24-002-ADR-环境从库初始化.md)
|
||
- [SQL 脚本](../sql/2026-01-24-002-datai_config_environment_datasourceId.sql)
|
||
- [提示词文档](../prompts/2026-01-24-002-prompt-环境从库初始化.md)
|
||
- [参考代码文档](../reference-code/2026-01-24-002-code-环境从库初始化.md)
|
||
- [实施方案文档](../implementation/2026-01-24-002-implementation-环境从库初始化.md)
|
||
- [会话记录](../sessions/2026-01-24-002-session.md)
|