79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
# 生产上线初始化 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` 会话字符集。
|