【发布时间】:2011-06-26 16:27:36
【问题描述】:
我想知道你们在 Zend Framework 环境中是如何工作的,尤其是如何使数据库表与其他团队保持同步(数据库变更管理)。我有一个在他们家工作的小团队,我们每次都需要有最新的数据库表。我们在家工作,所以有时我们在完成办公室的主要工作后工作。
有什么想法吗?
ps:就像 Rails 迁移一样
【问题讨论】:
标签: zend-framework database-management
我想知道你们在 Zend Framework 环境中是如何工作的,尤其是如何使数据库表与其他团队保持同步(数据库变更管理)。我有一个在他们家工作的小团队,我们每次都需要有最新的数据库表。我们在家工作,所以有时我们在完成办公室的主要工作后工作。
有什么想法吗?
ps:就像 Rails 迁移一样
【问题讨论】:
标签: zend-framework database-management
我们正在使用phing 的数据库部署功能来跟踪数据库随时间的变化,并在我们的开发人员之间更新数据库。我们还使用它来部署我们的应用程序的新版本,通常包括数据库更新。
基本上每次有人需要更新数据库方案时,他都会添加一个数据库迁移脚本。然后每个开发人员都可以运行 phing 来自动执行这些数据库迁移脚本。
有关更多详细信息,请在此处查看有关该主题的良好指南:http://www.davedevelopment.co.uk/2008/04/14/how-to-simple-database-migrations-with-phing-and-dbdeploy/
【讨论】:
还有一个由 Rob Allen (@akrabat) 开发的 ZF 专用迁移工具:
Akrabat_Db_Schema_Manager: Zend Framework database migrations
原理上类似于Phing中的dbdeploy工具。在 Rob 的 Schema Manager 中,每个 delta 文件都包含一个类,其中包含方法 up() 和 down() 分别执行 db 架构的升级和降级。
它带有一个基于Zend_Tool 构建的命令行工具,可以执行特定的迁移、报告当前架构版本等。
更新(由@markus-tharkun 建议)
我基于 Rob 的原始工作创建了一个数据库迁移工具,它使用 vanilla PDO 而不是 Zend_Db。该工具名为“South For the Winter”,所有者(Diamond Web Services / StartupDevs)已在 Github 上发布代码:https://github.com/startupdevs/sftw
【讨论】:
Zend_Db 连接,因此它不需要 Zend Framework。 github.com/startupdevs/sftw
我看到 Harrie Verveer 去年在 PHPNW 上就这个主题发表了非常有趣的演讲。总结如下:
http://techportal.inviqa.com/2011/01/11/database-version-control/
他得出的主要结论是,目前还没有解决这个问题的灵丹妙药。
我已经看到补丁系统在大型项目上严重失控,但在较小的项目上却能完美运行。您选择的方法很大程度上取决于团队的规模、项目的规模和数据库更改的频率。这是一个很容易在较小的项目中过度设计的问题,因此请注意您在解决方案中投入了多少工作。
【讨论】: