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

问题描述 投票:5回答:5

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

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

joomla
5个回答
6
投票

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

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


2
投票

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


1
投票

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

如果只是你的开发人员创建数据库更改(而不是第三方扩展添加未知的附加表),那么你可以看看像DBV https://github.com/victorstanciu/dbv这样的东西。

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

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


0
投票

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

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

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


0
投票

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

希望有所帮助! 干杯

© www.soinside.com 2019 - 2024. All rights reserved.