需求
- 表名的变更
- 列名的变更
- 列类型的变更
- 列值的变更及变更规则
普通迁移步骤
1,创建一个临时表
2,把里面的数据全部移动到对应的临时表中
3,删除旧表
4,新建新表
5,把临时表的数据根据定义好的变换规则把数据一个个导入到新的表中就好了。
防中断迁移步骤
1,创建新表对应的临时表(因为新表对应的旧表表名可能会变,所以统一新建一个新的临时表)
2,根据字段变更规则一个个把旧表数据移植到新表的临时表中。
3,等数据全部移植完毕后,修改旧表名字+ _await_delete(后缀)。
4,把新表临时表的名字改为新表的名字。
5,确认交互及所有数据都无误后。(人工或自动校验)
6,把旧表及里面数据都删掉。
6.1,如果有误,则把新表删掉,旧表名字改回来。
难点及坑
- 如何防中断?
- 把删除旧表放在最后
- 如何给出进度?
- 获取总共的数据条数
- 每插入N条返回一个百分比数值
(具体例子后续补充2020.5.26)
网友评论