3

我想知道你们在 Zend Framework 环境中是如何工作的,尤其是如何让数据库表与其他团队保持同步(数据库变更管理)。我有一个在他们家工作的小团队,我们每次都需要有最新的数据库表。我们在家工作,所以有时我们在完成办公室的主要工作后工作。

任何的想法 ?

ps:就像 Rails 迁移一样

4

3 回答 3

4

我们正在使用phing的 db deploy 功能来跟踪数据库随时间的变化,并在我们的开发人员之间更新数据库。我们还使用它来部署应用程序的新版本,通常包括数据库更新。

基本上每次有人需要更新数据库方案时,他都会添加一个数据库迁移脚本。然后每个开发人员都可以运行 phing 来自动执行这些数据库迁移脚本。

有关更多详细信息,请在此处查看有关该主题的良好指南:http ://www.davedevelopment.co.uk/2008/04/14/how-to-simple-database-migrations-with-phing-and-dbdeploy/

于 2011-06-26T19:23:07.013 回答
2

还有一个由 Rob Allen ( @akrabat ) 开发的 ZF 专用迁移工具:

Akrabat_Db_Schema_Manager:Zend Framework 数据库迁移

原则上,它类似于 中的dbdeploy工具Phing。在 Rob'sSchema Manager中,每个 delta 文件都包含一个带有方法的类up()down()它们分别执行 db 模式的升级和降级。

它带有一个命令行工具Zend_Tool,可以执行特定的迁移、报告当前的模式版本等。

更新(由@markus-tharkun 建议)

我基于 Rob 的原始作品创建了一个数据库迁移工具,它使用 vanillaPDO而不是Zend_Db. 该工具名为“South For the Winter”,所有者(Diamond Web Services / StartupDevs)已在 Github 上发布代码:https ://github.com/startupdevs/sftw

于 2011-06-28T03:56:21.630 回答
1

去年,我看到 Harrie Verveer 在 PHPNW 上就这个主题进行了一次非常有趣的演讲。总结在这里:

http://techportal.inviqa.com/2011/01/11/database-version-control/

他得出的主要结论是,目前没有解决这个问题的灵丹妙药。

我已经看到补丁系统在大型项目上严重失控,但在较小的项目上却能完美运行。您选择的方法很大程度上取决于团队的规模、项目的规模和数据库更改的频率。这是一个很容易在较小的项目上过度设计的问题,因此请注意您在解决方案中投入了多少工作。

于 2011-06-28T09:51:46.367 回答