Files
ccdi/docs/reports/implementation/2026-04-28-production-init-sql-implementation.md
2026-04-28 17:27:24 +08:00

79 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生产上线初始化 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` 会话字符集。