我有一个 3 到 4 个数据库,一个 rails 应用程序经过多年的修改,并存档了多年的数据。
我现在想将所有这些数据库合并到一个数据库中,但还需要确保表的 id 和关系得到维护。
有没有办法无忧无虑地合并,或者我必须检查每一个合并记录并维护关系。
例如,我有 DB1-2011和 DB1-2012假设程序表具有相同的结构,列可能会在 2012 年发生变化,但没什么大不了的。但是 DB1-2011.program 的 id 为 5 和相关记录,DB1-2012.program 也可能有 id 为 5 的记录
。所以在这里我如何管理这种情况而不用担心。MySQL/Rails/任何其他软件有什么方法可以更改/自动增加其他id并更新相关记录?如果没有,那么最好的方法是什么。
如果需要更多信息,请告诉我。
我所知,你面前有一项不令人羡慕的任务。如果您的表关系数量相当少,我将采用以下方法:
- 对所有数据进行多个可恢复的备份。确保您知道如何恢复这些。在确定之前不要继续。
- 确定哪个应用将成为您的规范实例
- 使用如下技术创建与其他数据库的连接 设计一系列迁移,这些
- 迁移将在规范实例上运行,遍历这些连接并在规范数据库中重新
create!
实体。例如,您将创建Program
实例,然后创建关联的对象。它们将被赋予新的、与规范一致的标识符,其余数据将完好无损地呈现。
您需要非常小心地记住所有关系,并以合理的顺序应用迭代,这就是为什么我只有在您拥有可识别的表和关系数量时才这样做。
祝你好运!