【问题标题】:zend database migration scriptszend 数据库迁移脚本
【发布时间】:2011-06-26 16:27:36
【问题描述】:

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

有什么想法吗?

ps:就像 Rails 迁移一样

【问题讨论】:

    标签: zend-framework database-management


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      还有一个由 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

      【讨论】:

      • 提案已存档。
      • 我最近在Rob's migration tool 的基础上写了一个db migration tool,名为South for the Winter。它使用 vanilla PDO 而不是 Zend_Db 连接,因此它不需要 Zend Framework。 github.com/startupdevs/sftw
      • @markus-tharkun:在 ZF-core 中包含迁移组件的提议可能已归档,但在撰写本文时,博客文章仍在更新中,它仍然指向他的 migration library .干杯! ;-)
      • 感谢您的工具链接,也许您可​​以将其编辑到您的答案中!
      【解决方案3】:

      我看到 Harrie Verveer 去年在 PHPNW 上就这个主题发表了非常有趣的演讲。总结如下:

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        • 2017-06-02
        相关资源
        最近更新 更多