项目重构关于数据迁移问题

老项目准备重构,新库和老库数据结构差别很大,一般数据清洗迁移是写一个脚本运行呢?还是有什么迁移工具可以完成?
如果是脚本清洗如何验证数据的完整性?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

前段时间公司技术转型 把之前php项目重构成java项目,表结构差异比较大,每个表写个command文件解决.

11个月前 评论
Geekc (楼主) 11个月前
oceanjiayu (作者) 11个月前
讨论数量: 14

蹲一个解决方案🐶

11个月前 评论

蹲一个解决方案🐶

数据结构不一样, id 关联应该也会有变动吧,我觉得大概率需要自己完成

11个月前 评论
Geekc (楼主) 11个月前

我的建议是手写脚本迁移,以表为单位来规划数据。

11个月前 评论

应该是要脚本同步了吧,然后人工+程序随机核验数据

11个月前 评论

差异大肯定要写脚本了,如果不大的话用Navicat同步

11个月前 评论

前段时间公司技术转型 把之前php项目重构成java项目,表结构差异比较大,每个表写个command文件解决.

11个月前 评论
Geekc (楼主) 11个月前
oceanjiayu (作者) 11个月前

只能自己写脚本进行迁移了。

11个月前 评论
sanders

蹲一个解决方案🐶

用脚本清洗数据,那肯定也是用脚本验证完整性最合适。

11个月前 评论

确保表的主键id 和业务没有关系 其他的数据 写个脚本清洗一下即可

11个月前 评论

只能脚本迁移了,肯定会有新Id和原来id对不上的情况,可以保留一个字段用来放原来的id,然后关联相关的数据。

11个月前 评论

工具不现实,特别是这种高定制化的。

再说自己写脚本也不麻烦啊,
写个command就好。

把表字段映射写好
a_field_map = [  
   'Id' => 'id', # 老表字段:Id 新表字段:id
   'user_name' => 'username' 
   ...
]
然后查老表数据 foreach一把梭。
只要表字段映射没错,数据也不可能错误。
11个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!