合并两个具有相同结构的数据库,同时牢记ID和关系 - MySQL



我有一个 3 到 4 个数据库,一个 rails 应用程序经过多年的修改,并存档了多年的数据。

我现在想将所有这些数据库合并到一个数据库中,但还需要确保表的 id 和关系得到维护。

有没有办法无忧无虑地合并,或者我必须检查每一个合并记录并维护关系。

例如,我有 DB1-2011

和 DB1-2012假设程序表具有相同的结构,列可能会在 2012 年发生变化,但没什么大不了的。但是 DB1-2011.program 的 id 为 5 和相关记录,DB1-2012.program 也可能有 id 为 5 的记录

所以在这里我如何管理这种情况而不用担心。MySQL/Rails/任何其他软件有什么方法可以更改/自动增加其他id并更新相关记录?如果没有,那么最好的方法是什么。

如果需要更多信息,请告诉我。

我所知,你面前有一项不令人羡慕的任务。如果您的表关系数量相当少,我将采用以下方法:

  • 对所有数据进行多个可恢复的备份。确保您知道如何恢复这些。在确定之前不要继续。
  • 确定哪个应用将成为您的规范实例
  • 使用如下技术创建与其他数据库的连接
  • 设计一系列迁移,这些
  • 迁移将在规范实例上运行,遍历这些连接并在规范数据库中重新create!实体。例如,您将创建Program实例,然后创建关联的对象。它们将被赋予新的、与规范一致的标识符,其余数据将完好无损地呈现。

您需要非常小心地记住所有关系,并以合理的顺序应用迭代,这就是为什么我只有在您拥有可识别的表和关系数量时才这样做。

祝你好运!

最新更新