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