56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
|
|
# 表合并说明文档
|
||
|
|
|
||
|
|
## 概述
|
||
|
|
|
||
|
|
本文档说明如何使用 `merge_tables.js` 脚本将 `order_allocations` 表数据合并到 `transfers` 表中,以实现数据库结构优化。
|
||
|
|
|
||
|
|
## 背景
|
||
|
|
|
||
|
|
原系统中,`order_allocations` 表和 `transfers` 表存在功能重叠,为了简化数据库结构和提高查询效率,我们决定将 `order_allocations` 表的数据合并到 `transfers` 表中,并通过 `source_type` 字段区分不同来源的转账记录。
|
||
|
|
|
||
|
|
## 合并策略
|
||
|
|
|
||
|
|
1. 为 `transfers` 表添加必要的字段,包括 `source_type`、`matching_order_id`、`cycle_number` 等
|
||
|
|
2. 将 `order_allocations` 表中的数据迁移到 `transfers` 表
|
||
|
|
3. 更新相关的外键引用
|
||
|
|
|
||
|
|
## 使用方法
|
||
|
|
|
||
|
|
### 前置条件
|
||
|
|
|
||
|
|
1. 确保已对数据库进行备份
|
||
|
|
2. 确保系统处于维护状态,没有用户正在使用
|
||
|
|
|
||
|
|
### 执行步骤
|
||
|
|
|
||
|
|
1. 进入项目根目录
|
||
|
|
2. 执行以下命令运行合并脚本:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node scripts/merge_tables.js
|
||
|
|
```
|
||
|
|
|
||
|
|
3. 脚本执行完成后,检查控制台输出,确认迁移是否成功
|
||
|
|
|
||
|
|
### 验证步骤
|
||
|
|
|
||
|
|
1. 检查 `transfers` 表中是否包含所有 `order_allocations` 表的数据
|
||
|
|
2. 验证系统功能是否正常,特别是与匹配订单相关的功能
|
||
|
|
3. 确认无误后,可以考虑删除 `order_allocations` 表(可选)
|
||
|
|
|
||
|
|
## 回滚方案
|
||
|
|
|
||
|
|
如果合并过程中出现问题,或者合并后系统功能异常,可以通过以下步骤回滚:
|
||
|
|
|
||
|
|
1. 使用之前的数据库备份恢复数据
|
||
|
|
2. 如果没有备份,可以手动将 `transfers` 表中 `source_type='allocation'` 的记录删除,并重新运行原有的系统
|
||
|
|
|
||
|
|
## 注意事项
|
||
|
|
|
||
|
|
1. 合并过程会自动处理已有关联的记录,避免重复迁移
|
||
|
|
2. 合并脚本使用事务进行操作,确保数据一致性
|
||
|
|
3. 建议在测试环境验证成功后再在生产环境执行
|
||
|
|
|
||
|
|
## 技术支持
|
||
|
|
|
||
|
|
如有问题,请联系技术支持团队。
|