3

我有同一个数据库的两个版本。一个是当前的,另一个是从备份中恢复的。现在我需要合并它们以基本上将数据从备份移动到当前数据库中,保留不同表之间的关系。

是否有任何工具可以帮助实现这一目标?

4

1 回答 1

3

Rubyrep有一个同步功能,可以做你想做的事。

Rubyrep 是一个基于触发器的 postgresql 和 mysql 异步复制系统。但它的功能之一是“同步”命令,它扫描表中的差异并尝试将它们合并在一起。通常你会先使用同步,然后使用复制来保持两个数据库同步,但是没有理由你不能单独使用“同步”命令。

我相信它使用主键来比较数据,因此根据您的架构,它可能适合您,也可能不适合您。您可能想先备份您的数据。

我认为它将合并具有相同主键的记录。你可以告诉它哪一方获胜。但是如果你有两条主键相同的记录不应该合并,我想你会遇到麻烦。

不过,如果你帮助它,它可能会起作用。您也许可以告诉它,例如“用户名”是主键而不是“id”。如果数据不重叠,或者提前手动调整您的串行主键。

于 2012-06-14T04:54:56.927 回答