是否可以将Joomla置于版本控制之下?

时间:2010-06-18 15:12:19

标签: joomla

我们是一个由许多开发人员组成的团队,他们在使用Joomla和自定义PHP脚本的网站上工作。问题是有多个开发人员正在处理需要在Joomla中更新信息的各种功能(添加模块,更改现有模块或更改设置),当一个开发人员更改某些内容时,他通常首先在本地进行更改,然后执行相同的操作(希望)在生产服务器上。这不仅非常容易出错,而且开发人员经常忘记告诉其他开发人员这些变化。自定义PHP脚本很容易在开发人员之间共享,但Joomla中的更改经常被遗忘,当开发人员尝试复制其生产中的本地更改时,它们会导致严重的冲突。

我考虑将Joomla放在Mercurial存储库中,但是我们如何在开发,测试和生产机器之间分配数据库中的更改?

5 个答案:

答案 0 :(得分:6)

我们在subversion上运行所有Joomla站点,并根据需要检查它们。只要我们需要对项目进行重大修改,我们就会分支。

一般情况下,我们运行一个测试数据库,该数据库在每个人之间共享,以确保我们拥有一致的数据,但您也可以轻松运行本地数据库。

答案 1 :(得分:2)

我们为所有拥有独立数据库的客户使用SVN。 安装新扩展时,数据库会更改。 使用databasedump之前的diff和安装扩展后的databasedump,我们知道差异是什么。

答案 2 :(得分:1)

数据库同步很棘手,因为您希望维护实时站点中存储的内容,同时从您的开发/暂存站点更新其他表。

如果只是您的开发人员创建数据库更改(而不是第三方扩展添加未知的附加表),那么您可以查看类似DBV https://github.com/victorstanciu/dbv的内容。

使用Navicat等数据库工具设置预定的数据库同步,我取得了一定的成功。这将是我的建议,因为它提供了最灵活的定义哪些表在何时何地同步。

另一个选择可能是查看mySql复制,但上次我看起来很难设置,当要同步的数据库之间没有明显的主/从关系时

答案 3 :(得分:0)

如果您将所有内容构建为扩展(模块,组件和插件),则应包括所需的任何数据库更改。我会设置它,以便每个开发人员都在使用他们自己的本地数据库。如果您需要加载测试数据,我只需创建可在安装所有扩展后运行的MySQL脚本。由于所有这些都可以检入回购,因此您应该善于分享代码的所有人。

使用PHP,您应该能够编写一个快速脚本,该脚本将以空服务器开始,安装Joomla !,安装所有扩展,然后转储到任何测试数据中。拥有这一点对于开发人员恢复“干净”状态也是有益的。我鼓励开发人员在开始任何新工作之前重新回到黄金状态。

另一个想法是使用mysqldump转储所有表。如果用户在其本地计算机上进行数据库更改,则还需要转储更改并将其签入。

答案 4 :(得分:0)

我们在服务器上使用SVN来管理这些类型的问题。如果您要与一组人一起进行任何富有成效的开发,您必须使用修订控制系统。有一些数字,有一个谷歌的svn,cvs,git,这些是一些最常被接受的版本控制系统。最初设置可能需要一些时间,但您将从中获得回报!

希望有所帮助!干杯