人们如何处理内容管理系统生产阶段?

rec*_*les 32 php drupal staging content-management-system

我一直在玩网络开发技术以获得乐趣(是的,我应该得到更多),并且对生产阶段(即开发,测试,性能和生产环境)缺乏明确支持感到有些震惊.实际上支持不是这个词; 内容管理系统似乎积极地反对允许清洁分期的努力.

目前我正在使用Drupal.我很难找到社区如何解决这个问题.我见过的大多数帖子都建议在生产系统上复制开发中的步骤(阅读本文实际上缩短了我的生活一点点).我还听说过将生产数据推回给开发人员,以便他们可以添加增量功能.如果客户端不希望您将数据拉回到开发环境中,那么这可能是不可能的.

最后我的问题是:

您如何管理CMS的现实生产阶段性问题?

我来自一个背景,在那里推动生产感觉就像送人到月球,所以我可能需要放松一点.但是我仍然感兴趣的答案涉及源代码控制,允许生产回滚和测试.

Jer*_*nch 10

我已经回答了有关数据库部署策略的问题.

关于代码部署还有一个问题.

在我工作的地方,我们正在进行相当大的Drupal部署.我们大致有以下设置.

所有开发人员都有一个本地沙箱(Drupal + DB).提交代码到所有其他开发人员共享的分支(我们大约有15个人).这包括由更新功能执行的配置更改.

当开发人员执行s​​vn时,他们还运行update.php以在本地执行任何配置更改.

我们有一个sprint测试系统,它运行最简单,可用于用户测试.

在sprint结束时(我们使用scrum),我们将分支合并到trunk中,并对此运行测试.

然后我们将其标记为发布并将其部署为live(使用Capistrano),最后在live上运行update.php以将配置更改应用于live.

任何紧急修复程序都从主干部署到一个点发布7.1等.

如果您想了解更多细节,请发表评论.


fla*_*gos 7

在花了几周时间来克服Drupal学习曲线之后,如果你正在建立一个任何复杂的网站,那么"太多配置存储在数据库中"这个问题就非常令人不安.

看看开发种子为解决这个问题所做的工作.他们正在领导上下文,功能空间模块的开发,这些模块一起工作以将配置数据存储在模块(数据库之外)中,以便可以使用代码对其进行版本控制.