0

我有两台共享原始祖先代码库的服务器,但在过去几个月中,它们在数据库架构方面发生了变化(我使用的是 mysql)。我即将使用第二个作为我的新生产服务器,但我必须更新数据(有新用户,有与这些用户相关的新数据等)。我希望服务器中的数据现在处于活动状态,但旧模式具有权限,但我希望新模式中的模式成为最终模式。所以这是一种奇怪的合并:我希望将来自旧服务器的数据导入到具有(不是很大)不同模式的新服务器中。

我正在考虑简单地转储具有最新数据的服务器,但是由于架构发生了很大变化,因此加载它是行不通的。

我还在考虑转储新服务器的架构,将其应用于旧服务器的副本,然后从后者转储数据并将其加载到新服务器中,但我不知道如何去做如果这是最安全的选择。

我在 mac OS X 上开发,我的两台服务器都是 debian。

4

2 回答 2

1

将架构从新服务器应用到旧服务器,然后迁移数据是最安全的选择,主要是因为它迫使您评估具体发生了哪些变化以及您想根据数据做什么(例如,新列在哪里补充说,你想在里面放什么)?

由于您提到架构并没有太大的不同,因此只需在没有每个服务器的数据(即仅表)的情况下进行 mysqldump 并手动比较(例如, with diff)将告诉您哪些列不同。然后,您可以ALTER在旧数据库上应用这些更改。

这一切都有点笨拙,但最终没有一种真正不笨拙的方式来做到这一点。

于 2012-07-23T00:07:00.347 回答
0

看这里:http ://bitbucket.org/idler/mmp - 它是 mysql 模式版本控制的工具,但只有模式,而不是数据。首先,您必须迁移架构,然后加载新数据。

于 2012-07-24T12:36:17.743 回答