是否可以将Joomla置于修订控制之下?

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

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


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

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


一般来说,我们运行一个测试数据库,每个人共享该数据库以确保数据一致,但您也可以轻松运行本地数据库。

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

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


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

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


希望有帮助!干杯

我们为所有拥有独立数据库的客户使用SVN。 安装新扩展时,数据库会发生更改。
安装扩展之前的databasedump和安装之后的databasedump存在差异,我们知道它们的区别。

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

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

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


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

主要问题是该数据库,并且我们无法控制在安装或删除第三方Joomla组件时对数据库所做的更改。您可以签入所有用户都可以使用的sql文件将有权访问。您可以存储在这些文件中,或者根据需要更新数据例程,或者添加列等。每个表可能有一个sql文件。通过这种方式,您可以查看初始数据库设置中发生的更改,并在必要时将这些更改应用于新的数据库设置。