【问题标题】:How do you update the structure of an entire MySQL database?如何更新整个 MySQL 数据库的结构?
【发布时间】:2010-12-04 06:01:09
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: mysql phpmyadmin mysqldump


    【解决方案1】:

    你可以试试MySQL workbench;它可以让你

    1. 从 MySQL 数据库创建架构。
    2. 通过逆向 db 版本 3 将架构导入 MySQL 工作台,
    3. 然后将其与 db 版本 1 中的架构进行比较以生成 SQL alter 脚本。

    【讨论】:

    • 文件->正向工程->创建修改脚本。或者类似的东西
    • @Graviton 仅供参考,该链接指向一个不存在的 Western Digital 产品。 mysql.com/products/workbench
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 2022-12-21
      相关资源
      最近更新 更多