4

好的,假设您有两个数据库。您用作经过各种修订的主模板,假设我们现在处于修订版 3。但是第二个数据库是模板的副本,因为它在修订版 1 中。

因为正在使用 db 2,所以您不想删除任何表,但您确实需要将整个 db 的结构更新到 db 1 的最新版本。

有没有什么方法可以做到这一点,而不必手动完成并一次又一次地进行所有相同的更改(在不同版本的许多数据库上)并且不会丢失任何数据?

我知道数据完整性是问题所在,因为某些数据可能不再有效等等,但是没有办法覆盖它吗?

理想情况下,我只想能够使用 db 1 结构的 mysqldump 并用 db 1 的新版本覆盖 db 2 中的任何冲突表,而不会丢失所有数据。如果在 phpmyadmin 中有任何方法可以做到这一点,那就太好了。

4

2 回答 2

2

你可以试试MySQL 工作台;它允许您

  1. 从 MySQL 数据库创建模式。
  2. 通过对 db 版本 3 进行逆向工程,将模式导入 MySQL 工作台,
  3. 然后将其与 db 版本 1 中的模式进行比较以生成SQL alter脚本。
于 2009-10-06T11:56:50.457 回答
0

您的 DB 连接器可以为您执行此操作(某些 Python 框架可以演化 DB),或者您必须手动执行此操作。

如果您必须手动执行,最好的方法是能够使用脚本中的一些数据创建整个数据库。这必须是全自动的。创建基本版本后,您可以在脚本之后应用脚本来发展数据库(更改表等)。

在自动测试中执行此操作,您可以在客户站点安装下一个版本时自动迁移数据库。

于 2009-10-06T11:59:48.843 回答