跟踪数据库结构中的更改

时间:2009-09-10 13:15:40

标签: mysql database

我如何跟踪数据库的所有更改?

我需要一种方法来确切地了解我对数据库所做的更改,以便我可以在另一台服务器上进行相同的更改。

例如,如果我在其中一个表中添加了一个新字段,我想知道该字段是什么,以便我可以将该字段添加到另一个数据库。

7 个答案:

答案 0 :(得分:9)

人们在面对这些问题时经常采取的步骤是:

  1. 以当时需要的方式更改开发数据库。

  2. 准备部署新版本的应用程序 - 意识到生产数据库也需要更新,同时保留数据。

  3. 转储生产和开发架构,手动区分架构创建脚本。砰地靠在墙上。编写更新生产数据库的更改脚本。

  4. 在更新开发数据库时,实现更改脚本需要从头开始编写,而不是毫不犹豫地添加和更改内容。

  5. 查找用于对这些更改脚本进行版本控制的命名方案,以便可以将任何安装从给定版本更新为更新版本。

  6. 将数据库创建和更改脚本放在源代码管理中。

  7. 确保你不是每次都重复1-3次,而是四处走动,所以你不必每次都重复1-3次。

答案 1 :(得分:2)

查看LiquiBase

它允许您将数据库更改描述为XML,因此您可以像在代码中一样在VCS中维护数据库结构。

答案 2 :(得分:0)

使用MySQL Query Browser跟踪数据库更改的非自动但有用的方法。它保留了您在使用它时运行的所有操作的历史记录。这使得组装更改脚本非常简单。

显然,如果您希望复制所有用户所做的所有更改,则这不是解决方案。但是如果你只是想按正确的顺序保留一组更改并避免重新输入它们,那么它的效果非常好。

答案 3 :(得分:0)

您是否考虑过使用MySQL Replication来执行此操作?你真的不想自己实现这个,除非你出于某种原因。

答案 4 :(得分:0)

phpmyadmin有一个GSoC项目涉及Tomas Srnka今年夏天的复制。我认为它已成为行李箱的方式

答案 5 :(得分:0)

有许多工具可以进行数据比较: - Database Worbench - EMS sql manager - SQL Maestro - Database comparer

但此工具也可用于创建更新脚本<​​/ p>

答案 6 :(得分:0)

我一直在网上阅读有关模式的信息,这是比较数据库和查找更改的有用方法吗?