数据库结构变更如何优雅的导入数据

旧库数据较多,但是结构不好,设计了新的数据库结构,将一些表合并,一些表分拆,如何有较好的方式把旧库数据导入到新库。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6
Summer

能想到的,只能是很暴力的写个命令,然后一点点挪到新表中

8年前 评论

没有什么好的方式。数据和需求是个性的,需要写程序一点一点对应起来导入了。

8年前 评论
Ryan

我一般都是写个 atrisan 命令做一下各个表的数据迁移

8年前 评论
monkey

这种涉及到业务逻辑的变更的修改,只能一对一的进行迁移。

使用 artisan 命令将每张数据表做定点迁移吧。

8年前 评论
lijinma

我还确实有过这样的经历。

如果数据少,随便弄弄,写个 artisan 指令就可以了,如果数据多呢?几千万?几亿?我给点思路,你看看:

  1. 使用 artisan 写命令来处理,多进程来跑,怎么分配每个进程跑的数据需要你考虑,进程通过什么控制也需要你考虑。

  2. 导出数据的 sql,处理 sql 满足新的表格,切分 sql 为多个文件,多个进程来 source sql。

1 如果你使用 limit 进行分页,一定要注意 limit 的性能问题,这个搜一搜应该有很多解决方案。
2 肯定比 1 效率高,因为没有中间资源的消耗,但是要看你的逻辑。

8年前 评论
lijinma

确实遇见过导数据到了一晚上没导完,第二天上班?

8年前 评论