3

我有一个本地服务器,我在其中进行所有测试和工作。完成后,我只需上传 db 架构以及相关代码即可。但是,当我对架构进行一些更改时,就会出现问题。我必须在我的实时服务器上手动输入“alter table”查询。

有没有办法获取数据库模式中发生的增量更改,以便我可以应用新的?还是我必须手动跟踪?

如果我使用 mysqldump,那么它会生成最终数据库的架构(而不是使用 alter table 等)。

非常感谢你。

4

5 回答 5

2

我将用于生产服务器的 delta sql 脚本与新代码一起保存。我编写所有内容,因此应用程序从版本 X 到版本 Y 的更改是“自动的”。有些人还有撤消脚本,以防出现问题。

于 2009-04-19T04:40:23.547 回答
1

存储您在开发中所做的更改,作为一个小组来测试这些更改如何?

于 2009-04-19T04:40:45.637 回答
0

查看Liquibase。它是 Java,但运行良好。

于 2009-04-19T04:43:54.490 回答
0

MySQL Workbench允许您导出 ALTER 脚本(文件 -> 导出 -> Forward Engineer SQL ALTER 脚本)。您必须首先导入现有数据库并将您的修改应用到它。商业版本允许您对实时数据库进行逆向工程,而社区则可以导入 CREATE 脚本(这将是现有结构的简单转储)。或者,您可以使用DBDesigner 4对实时数据库进行反向工程,将所有内容保存到 XML 模型文件中,然后导入此文件,但您会丢失默认字符集等内容......

于 2009-04-19T08:29:36.663 回答
0

您可以将此工具用于自动化过程^ http://hg.antonoff.info/idler/mmp/wiki/Home

仅要求 PHP(但版本 >= 5.3)

于 2010-12-07T05:53:20.317 回答