首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有谁有php/mysql的开发/升级/部署工作流吗?

有谁有php/mysql的开发/升级/部署工作流吗?
EN

Stack Overflow用户
提问于 2009-01-11 01:57:01
回答 2查看 10.7K关注 0票数 18

我正在考虑一个很好的php/mysql web开发工作流程。

有人有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-11 03:46:48

下面是我们要做的:

  1. 每个人都在自己的分支(代码、测试等)中处理自己的项目当一切看起来都很好时,它将合并到Trunk
  2. phpUnderControl重建主干中,运行我们所有的

测试、构建文档、更新数据库等

  1. 如果所有这些都通过了,我们合并到phpUnit中得到完全重建,就像主干一样
  2. 稳定版手动升级到我们的生产服务器<代码>H214<代码>G215

我们有一些自定义脚本来处理我们的数据库升级和生产推送。对于我们的数据库,我们将所有的增量都放在一个文件夹中,脚本根据可用的增量检查当前的DB级别,并在需要时应用它们。

为了提升到生产环境,我们有另一个脚本,它会拉下所有的生产数据,然后运行rsync来推送更改。

您没有提到您对服务器的控制级别,但是对于一般的开发,整个过程是相同的。

票数 12
EN

Stack Overflow用户

发布于 2009-01-11 12:24:29

我认为每个人做这些事情的方式都略有不同,这取决于具体的应用。下面是我们的设置:

在发布之前:

每个人都提交给/trunk.

  • When,我们想要发布一个版本,我们复制主干来稳定标签。

一旦稳定下来,我们就运行部署脚本:

在生产服务器上,签出新标记。迁移database.

  • Stop守护程序并关闭application(s).

  • Switch

  • /current以指向新签出的标记。

  • 运行迁移symlink守护程序和applications.

如果我们需要快速推出一个小更改,我们可以将其合并到当前标记中,然后我们可以在服务器上运行一个简单得多的热修复过程:

停止守护程序并关闭web application(s).

  • Run svn update

  • Restart守护程序和applications.

请注意,有一些工具旨在结构化/自动化这些流程。Phing就是其中之一,Symfony有自己的batch system,它曾经是一个名为pake的独立项目。如果这还不够,Zend Framework即将创建their own variant。这一切真的有点混乱,但Phing可能是使用最广泛的。你也可以使用一些非php特有的东西,比如AntCapistrano。我们只使用shell脚本,基本上满足了同样的需求。

我们还有一个持续运行的构建,它从主干中检出并运行所有测试。目前我们只有一个基本的shell脚本集合来做这件事,但我们正在考虑切换到PhpUnderControlxinc

迁移步骤可能需要一些解释。其中包含对数据库的更改,以及新版本必须运行的其他任务。现在我们的迁移有点简单;我们只有一个文件夹,里面有一堆.php.sql脚本,在迁移过程中,它们是按顺序运行的。我们跟踪运行了哪些更改的方法是,在创建新标记后立即清空migrations文件夹。不过,使用数据库来记录已运行的更改可能更明智。出于这个目的,我们被考虑采用像ruckusing这样的东西。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/432162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档