Unify staff recruitment work table collation

This commit is contained in:
wkc
2026-04-22 10:07:05 +08:00
parent fc6af5234d
commit 94507e3747
9 changed files with 154 additions and 4 deletions

View File

@@ -0,0 +1,39 @@
# CCDI 数据库默认排序规则修复实施计划
## 保存路径确认
- 路径:`docs/plans/backend/2026-04-22-ccdi-database-default-collation-backend-implementation.md`
- 归类:后端实施计划
## 目标
-`ccdi` 数据库默认字符集统一为 `utf8mb4`
-`ccdi` 数据库默认排序规则统一为 `utf8mb4_general_ci`
## 背景
- 当前 `ccdi` 数据库默认排序规则为 `utf8mb4_unicode_ci`
- 仓库数据库规范要求业务库默认排序规则统一为 `utf8mb4_general_ci`,避免新建表或新增字符字段继续继承错误默认值。
## 实施步骤
1. 新增数据库增量脚本,执行 `ALTER DATABASE ccdi CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci`
2. 使用 `bin/mysql_utf8_exec.sh` 在当前开发库执行脚本。
3. 查询 `information_schema.SCHEMATA` 回查默认字符集与默认排序规则是否生效。
4. 补充实施记录,说明变更范围与验证结果。
## 验证命令
```bash
bin/mysql_utf8_exec.sh sql/migration/2026-04-22-fix-ccdi-database-default-collation.sql
```
```bash
mysql ... -e "SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME='ccdi';"
```
## 完成标准
- `ccdi``DEFAULT_CHARACTER_SET_NAME``utf8mb4`
- `ccdi``DEFAULT_COLLATION_NAME``utf8mb4_general_ci`
- 本次变更已形成实施记录

View File

@@ -0,0 +1,31 @@
# 员工招聘列表排序规则冲突修复实施计划
## 保存路径确认
- 路径:`docs/plans/backend/2026-04-22-staff-recruitment-collation-fix-backend-implementation.md`
- 归类:后端实施计划
## 背景
- 员工招聘列表查询执行 `ccdi_staff_recruitment``ccdi_staff_recruitment_work``recruit_id` 关联时,报错 `Illegal mix of collations (utf8mb4_0900_ai_ci) and (utf8mb4_general_ci)`
- 现有招聘主表已被纳入全库统一排序规则脚本,但历史工作经历子表在建表时未显式声明 `utf8mb4_general_ci`,且未被纳入统一修复脚本,导致在 MySQL 8 环境中可能沿用默认 `utf8mb4_0900_ai_ci`
## 实施范围
- 后端 MyBatis 查询 XML
- 招聘相关 SQL 建表脚本
- 数据库增量迁移脚本
## 实施步骤
1. 修改招聘列表查询 SQL`ccdi_staff_recruitment_work.recruit_id` 聚合与关联时显式使用 `utf8mb4_general_ci`,先恢复查询可用性。
2. 修正 `2026-04-15-add-staff-recruitment-social-work-summary.sql`,为 `ccdi_staff_recruitment_work` 建表语句补齐 `COLLATE=utf8mb4_general_ci`
3. 补充增量脚本,将现有库中的 `ccdi_staff_recruitment_work` 转换为 `utf8mb4_general_ci`
4. 更新全库统一排序规则脚本,将该表纳入统一修复范围,避免后续漏执行。
5. 编译受影响模块,确认 Mapper XML 与资源装配正常。
## 验证要点
- `selectRecruitmentPage` 查询不再因 `recruit_id` 关联报排序规则冲突。
- `ccdi_staff_recruitment_work` 表级与字符字段排序规则统一为 `utf8mb4_general_ci`
- `mvn -pl ccdi-info-collection -am compile` 通过。