在Drupal/CMS项目中使用版本控制

41

我想知道使用Drupal(或其他任何CMS)开发网站的团队如何将版本控制、子版本控制、Git或类似工具集成到其工作流程中。显然,您需要将自定义代码和主题文件纳入版本控制,但当您使用Drupal等CMS时,很多工作涉及配置模块和设置,所有这些都存储在数据库中。

那么,作为开发团队,您如何协作完成这样的项目?将数据库转储为一个文件并将该文件放入版本控制可能有效,但是当网站上线后,客户会不断添加内容,这使得同步有些棘手。

我很想知道其他人是如何处理这个问题的。

3个回答

17

你说得没错,这是Drupal的一个问题——版本控制一直工作正常,直到你将网站交给客户或向用户开放。

你的问题似乎是这个问题的更具体版本 之一,它涉及Drupal工作流程中的版本控制。你可能会在那里找到一些有用的答案。

对于某些项目,我已将所有视图导出为代码,使用了Views模块的该功能,并且有一个项目中所有块也都被导出了。(尽管那只是开发练习,而不是块的惯常操作。)

看看Development Seed正在解决这个问题的方案。他们领导了ContextFeaturesSpaces模块的开发,这些模块共同工作,将配置数据存储在模块中(而非数据库中),因此可以与代码一起进行版本控制。

有一个Drupal小组叫做Packaging & Deployment,讨论正在开发的各种解决这个问题的方法。


1

现在有很多努力正在创建一些东西,以处理与数据库相关的Drupal开发->生产困难。Flaminglogos提到的功能是其中之一,但我觉得它更专注于创建独立项目,即那些将安装在许多站点上的项目。

对于简单的维护您的dev和prod数据库,我建议看看http://drupal.org/project/deployhttp://drupal.org/project/dbscripts。它们支持同步和合并db侧Drupal配置数据。

虽然我不能保证它们已经准备好了...


部署模块在项目页面上的演示录像中看起来很有趣,我同意它是更新单个站点内容的一个不错解决方案。 - flamingLogos

0

在Drupal的下一个版本中,有很多关于将配置嵌入代码的努力。这是要将其纳入版本控制系统的关键。

目前您可以使用Features模块,通过该模块您可以将内容类型、视图等等导出到代码中,并按需进行比较、版本控制和还原。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接