在 Drupal/CMS 项目上使用版本控制
Posted
技术标签:
【中文标题】在 Drupal/CMS 项目上使用版本控制【英文标题】:Working with version control on a Drupal/CMS project 【发布时间】:2011-02-23 00:57:35 【问题描述】:我想知道使用 Drupal(或任何其他 CMS)开发网站的团队如何将版本控制、subversion、git 或类似工具集成到他们的工作流程中。您显然希望您的自定义代码和主题文件受到版本控制,但是当您使用 Drupal 等 CMS 时,很多工作包括配置模块和设置,所有这些都存储在数据库中。
所以当您是一个开发人员团队时,您如何在这样的项目上进行协作?我猜将数据库转储到文件中并将该文件置于版本控制下可能会起作用,但是当站点处于活动状态时,客户端会不断添加内容,这使得同步有点问题。
我很想知道其他人是如何做到这一点的。
【问题讨论】:
【参考方案1】:您说得对,这是 Drupal 的一个问题——版本控制可以正常工作,直到您将网站移交给客户或向用户开放。
您的问题似乎是 one 的更具体版本,它涉及 Drupal 工作流程中的版本控制。您可能会在那里找到一些有帮助的答案。
对于某些项目,我已使用 Views 模块的该功能将所有视图导出为代码,并且我有一个项目也已导出所有块。 (虽然这是一个开发练习,而不是与块有关的习惯性事情。)
查看Development Seed 为解决此问题所做的工作。他们正在领导 Context、Features 和 Spaces 模块的开发,这些模块协同工作以将配置数据存储在模块中(数据库之外),以便可以使用代码对其进行版本控制。
有一个名为Packaging & Deployment 的 Drupal 小组讨论正在为此问题开发的各种解决方案。
【讨论】:
【参考方案2】:现在有很多努力来创建一些可以处理与数据库相关的 drupal 的开发 -> 生产困难的东西。 flaminglogos 提到的功能是其中之一,但我觉得更侧重于创建独立项目,即可以安装在许多站点上的项目。
为了简单地维护您的开发和产品数据库,我会看看 http://drupal.org/project/deploy 和 http://drupal.org/project/dbscripts。它们支持同步和合并 db 端 drupal 配置数据。
我不能保证他们已经准备好迎接黄金时段......
【讨论】:
Deploy 模块在其项目页面上链接的截屏视频中看起来很有趣,我同意它是用于更新单个站点上的内容的简洁解决方案。【参考方案3】:在发布带有代码配置的下一个 drupal 版本方面付出了很多努力。这是在版本系统中拥有它的关键。
现在您可以使用 features 模块,通过它您可以将内容类型、视图等内容导出到代码中,然后根据需要进行比较、版本和还原。
【讨论】:
以上是关于在 Drupal/CMS 项目上使用版本控制的主要内容,如果未能解决你的问题,请参考以下文章