逐步迁移到新的数据库架构。有什么建议吗?

6
这个问题是关于如何临时地以编程方式同步两个具有非常不同模式的数据库中新记录的最佳方法,忽略旧的-过时且不再需要的记录。我在一家为指南、报纸和网站提供电视节目信息的公司工作。我有一个旧系统,存在几个限制,并正在被新系统取代。不同的客户以不同的方式(推、拉、部分转储、简单导出、人工辅助导出-如PDF版本等)以不同的格式(XML、SQL、TXT,甚至是打印就绪的PDF)获取数据。有些导出品每月生成一次,有些则超过一天以上。问题在于,直到新系统完全开发和加载之前,几个客户必须依赖于旧系统的数据,而维护数据的员工无法使两个数据库同步,因为这将需要大量额外的工作,但是考虑到项目的规模,似乎不可能在一夜之间切换系统。我们不想对旧数据库中的数据进行完整的导入,因为其中大部分已经不再必要,并且有很多垃圾(即,具有不同详细级别的重复记录,我们只需要作为存档的旧广告信息)。我们希望将新记录插入两个数据库,并将旧记录编辑、复制到新数据库中。我们即将开始使用Symfony和Doctrine开发新系统,并且我决定设计一组ORM“代理”类,应该具有与简单的Doctrine ORM类集相同的接口,但在另外两个类集之间保持同步(一个接口新系统,一个接口旧系统)。最终,旧DB应该随着代理类一起被丢弃,直接连接到新DB的Doctrine ORM类应该占据那个位置,就像旧系统从未存在过一样。这是一个冒险,我对这种方法并不完全有信心。有没有人有这种项目的经验?您是否知道在这种方法中的任何常见问题,或者其他适合这种情况的解决方案?
1个回答

1

我不确定是否有一种方法可以完成这个任务,我只能建议您在开始迁移数据之前应该充分测试新的数据库,一旦确定它按照预期工作,我建议您编写一些迁移应用程序,从旧的数据库查询需要导出的数据,您不必(但应该)调试旧数据库中的数据,如果新数据库正常工作,则应该忽略重复的数据。

我曾经为一家不关心这类问题的公司工作过,最终变成了一团糟,补丁接着补丁,大声喊叫和不必要的压力。我知道...很遗憾。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接