2.0 KiB
2.0 KiB
参考:数据库迁移规则
编写 DDL、Model、Schema 时加载此文档。
公共字段适配(7 项强制)
| 变更项 | 原 CRM(Java) | shanxia2.0 | 示例 |
|---|---|---|---|
| 主键 | bigint(20) AUTO_INCREMENT |
varchar(64) NOT NULL(UUID) |
id varchar(64) NOT NULL COMMENT '主键ID(UUID)' |
| 租户 | tenant_id varchar(20) |
tenant_no varchar(64) |
— |
| 创建部门 | create_dept bigint(20) |
create_dept_id varchar(64) |
— |
| 删除标记 | del_flag tinyint(1) |
del_flag smallint(6) |
— |
| 版本号 | version int(11) |
移除 | 不使用乐观锁 |
| 公共字段顺序 | 不统一 | tenant_no → order_num → remark → create_by → create_dept_id → create_time → update_by → update_time → del_flag |
— |
| 字符集 | utf8mb4 |
utf8mb4(不变) |
— |
业务字段对齐原则
除 7 项公共字段适配外,所有业务字段语义必须与原 CRM 完全一致:
- 字段名不变(
customer_name、deal_status等) - 类型可等价或略宽(
varchar(20)保留,不得缩为char(1)) - 默认值不变(
status varchar(20) DEFAULT 'normal',不得改为DEFAULT '1') - COMMENT 枚举不变
- 索引保留
字典数据迁移(强制)
| 规则 | 说明 |
|---|---|
dict_type 不可改 |
如 crm_customer_status,原样迁移 |
dict_value 不可改 |
如 on/off、normal/pool/invalid,禁止改为 1/0 |
dict_label 不可改 |
展示文案以原 CRM 为准 |
| 数据来源 | 从 sx.sql 的 sys_dict_type / sys_dict_data 中筛选 crm_% 导入 |
禁止做法:
- ❌ 将
on/off改为1/0 - ❌ 将
normal/pool/invalid改为1/2/3 - ❌ 写兼容层做值转换
DDL 检查清单
- 主键
varchar(64) NOT NULL - 业务字段与
sx.sql一致 - 公共字段按标准顺序排列
- 字符集
utf8mb4,引擎InnoDB - 所有字段有 COMMENT
- 索引与原 CRM 等价
- SQL 增量脚本保存到
docs/sql/