Files
ccdi/docs/reports/implementation/2026-04-28-production-init-sql-implementation.md

79 lines
3.3 KiB
Markdown
Raw Normal View History

2026-04-28 17:27:24 +08:00
# 生产上线初始化 SQL 生成实施记录
## 保存路径确认
- 生产初始化 SQL`sql/ccdi_prod_init_20260428.sql`
- 实施记录:`docs/reports/implementation/2026-04-28-production-init-sql-implementation.md`
## 修改内容
- 新增 `sql/ccdi_prod_init_20260428.sql`,用于生产空库初始化。
- SQL 内容包含当前 `ccdi` 库最终态的 57 张表结构。
- SQL 必要数据范围:
- 若依基础配置、部门、岗位、用户、角色、菜单、角色菜单、字典、定时任务、公告。
- CCDI 默认模型参数,仅包含 `ccdi_model_param.project_id = 0` 的系统默认参数。
- 流水打标规则 `ccdi_bank_tag_rule`
- SQL 不包含运行期业务数据:
- 项目、员工、流水、导入记录、风险结果、采购事项、实体库、中介库、操作日志、登录日志等数据均保持空表。
- 将导出结构中的非规范排序规则统一修正为 `utf8mb4_general_ci`,未保留 `utf8mb4_0900_ai_ci`
- 针对生产执行时报错 `Specified key was too long; max key length is 767 bytes`,按生产要求删除旧库 767 bytes 限制下会超长的索引定义,保留字段长度、表结构和必要初始化数据不变。
- 删除的超长索引范围:
- Quartz 表中的长字符复合主键和依赖这些长字符复合键的外键索引。
- `ccdi_account_info.idx_ccdi_account_info_account_no`
- `ccdi_asset_info.idx_family_person`
- `ccdi_bank_statement.uk_bank_statement_dedup`
- `ccdi_bank_statement.idx_batch_id_account`
- `ccdi_bank_statement.c4c_bank_statement_stg_batch_id_IDX`
- `ccdi_bank_statement_tag_result.uk_ccdi_bank_tag_object_hit`
- `ccdi_enterprise_base_info.idx_enterprise_name`
- `ccdi_evidence.idx_ccdi_evidence_source`
- `ccdi_model_param.uk_project_model_param`
- `ccdi_project.idx_project_name`
## 验证情况
- 使用本机临时 MySQL 实例导入 `sql/ccdi_prod_init_20260428.sql` 验证通过。
- 导入后验证结果:
- 表数量57。
-`utf8mb4_general_ci` 表数量0。
- 基础数据行数:
- `sys_config`8。
- `sys_dept`10。
- `sys_dict_type`26。
- `sys_dict_data`98。
- `sys_menu`166。
- `sys_role`2。
- `sys_role_menu`134。
- `sys_user`3。
- `sys_job`3。
- `sys_notice`2。
- `ccdi_bank_tag_rule`35。
- `ccdi_model_param`17且全部为 `project_id = 0`
- 业务数据抽查为空:
- `ccdi_project`0。
- `ccdi_base_staff`0。
- `ccdi_bank_statement`0。
- `ccdi_file_upload_record`0。
- `ccdi_purchase_transaction`0。
- 测试完成后已关闭本机临时 MySQL 实例。
- 生产索引长度修复后,再次计算脚本内所有剩余索引长度,确认超过 767 bytes 的索引数量为 0。
- 删除超长索引后,再次使用本机临时 MySQL 实例导入验证通过:
- 表数量57。
-`utf8mb4_general_ci` 表数量0。
- `ccdi_model_param`17。
- `ccdi_bank_tag_rule`35。
- `sys_menu`166。
- `ccdi_project`0。
- `ccdi_bank_statement`0。
## 执行说明
- 目标生产库需为空库。
- 目标库字符集和排序规则建议使用:
```sql
CREATE DATABASE ccdi DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
```
- 导入时需使用 `utf8mb4` 会话字符集。