代码之家  ›  专栏  ›  技术社区  ›  Sebastián Grignoli

逐步迁移到新的数据库模式。建议?

  •  6
  • Sebastián Grignoli  · 技术社区  · 14 年前

    (这个问题是关于 并以编程方式保持两个数据库的新记录同步,具有完全不同的模式,并忽略旧的、过时的和不再需要的记录。)

    我在一家为导游、报纸和网站提供电视节目信息的公司工作。

    我有一个旧系统,有几个限制,正在被一个新的取代。

    不同的客户机以不同的格式(xml、sql、txt,甚至是打印就绪的PDF)和不同的方式(推送、拉送、部分转储、简单导出、人工辅助导出(如PDF版本)等)获取数据。有些出口每月产生一次,有些则每天不止一次。

    问题是,在新系统完全开发和加载之前,几个客户必须依赖旧系统中的数据,维护数据的工作人员不能同时拥有两个数据库,因为这需要大量额外的工作,但考虑到项目的规模,一夜之间切换系统似乎是不可能的。

    我们希望在两个数据库中插入新记录,并将正在编辑的旧记录复制到新数据库中。

    我们即将开始使用Symfony with document开发新系统,我决定我们可以设计一组ORM“proxy”类,这些类的接口应该与一组简单的document ORM类相同,但是要在另外两组类(与新系统接口的类和与旧系统接口的类)之间保持同步。最终,旧的DB应该和代理类一起被丢弃,直接连接到新DB的ORM类应该被丢弃,就好像旧的系统永远不存在一样。

    这是一个长期的机会,我不完全有信心的做法。
    有人有过这种项目的经验吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Eduardo Rascon    14 年前

    我不确定是否有一种方法可以实现这一点,我只能建议您在开始迁移数据之前对新数据库进行全面测试,一旦您确定它可以正常工作,我建议您编写一些迁移应用程序,查询要从旧数据库导出的所需数据,您不必(但应该)调试旧数据库中的数据,如果新数据库正常工作,则约束应忽略重复的数据。

    我以前在一家不关心这种问题的公司工作,结果一片狼藉,一片接一片,大喊大叫,压力很大。我知道。。。悲伤。