如何使两个具有不同模式的数据库保持最新

Pet*_*ouš 6 mysql database postgresql database-design

我们公司有一个非常古老的遗留系统,有这么糟糕的数据库设计(没有外键,带有序列化PHP数组的列等等).我们决定用新的数据库模式从头开始重写一个系统.

我们想要按部分重写系统.因此,我们将旧的单片应用程序拆分为许多较小的应用程序.

问题是:我们希望在两个数据库中拥有实时数据.新旧架构.我想问你是否有人知道如何做到最好的做法.

我们的想法是:

  1. 与消息队列的异步数据同步
  2. 在新系统中创建REST API,并使遗留应用程序使用它而不是db调用
  3. 某种表复制

非常感谢你

JCa*_*nes 1

我过去不得不处理类似的问题。有一个系统没有支持,但有人使用它,因为它有一些功能(安全漏洞),允许他们使用某些功能。然而,他们还需要新的功能。

我选择了涉及新系统的表,并创建了一些用于交叉更新表的触发器,因此当我在旧系统上创建寄存器时,触发器在新系统中创建了一个副本并反转。如果您正确设计该系统,您将使两个系统同时实时工作。

缺点是,当两个系统都运行时,系统会变得更慢,因为您必须在每次操作中维护两个数据库的完整性。