7

我在一所大型大学工作,并被指示研究使用源代码控制系统(git、svn 等)来管理网站。我们使用严重依赖 MySQL 的 Joomla。

目前,我们有一个几乎没有功能的系统,它使用开发服务器,每当我们更改网站时,它都会推送到实时服务器。这是一种痛苦,而且并不总是有效。另外,我们可以并且经常覆盖另一个开发人员所做的更改。

我们希望能够通过开发分支上的 Joomla 前端管理内容,然后将这些更改推送到测试分支,然后推送到主(实时)分支。

没有完全摆脱杂草:我的问题是,本质上,使用依赖数据库的 Joomla 等 CMS 管理网站的好策略是什么?

4

1 回答 1

4

由于您还想同步数据库(内容存储在 db 中,而图像和媒体在文件系统上),您需要 commit/push 脚本也将 db 转储到文件,并使用 pull 脚本加载 db . 这可以通过 pre 和 post 钩子来完成,http ://githooks.com/或谷歌它。

但是,您需要单独同步 Joomla 的不同部分。

让我们考虑三个服务器:

  • 编辑服务器:管理内容的地方
  • 开发服务器:测试和配置扩展的地方
  • 测试服务器
  • 生产服务器

让我们考虑三层信息:

  1. 用户和会话数据:这根本不应该同步,因此人们不会注销,如果有任何用户在生产服务器上注册,他们的登录名将被保留。

  2. 内容、用户组和资产(权限):这是必须从编辑测试生产开发的文章、新闻、图像(除非您在用户级别具有特定于内容的权限,即每个用户都有单独的权限在每个内容项上)

  3. 模板、扩展、模块、菜单配置:这将从开发测试再到生产编辑

这些数据组中的每一个都需要它们自己的分支和自定义的预提交钩子,以包含在提交/推送相关的数据库表中。每个组的表列表取决于您使用的扩展。

我写了一篇文章,它是用意大利语和 svn 写的,但你可以获取我们使用的一些 bash 脚本:http: //www.fasterjoomla.com/joomla-tips/svn-per-joomla或由谷歌翻译http:// translate.google.com/translate?sl=it&tl=en&js=n&prev=_t&hl=it&ie=UTF-8&u=http%3A%2F%2Fwww.fasterjoomla.com%2Fjoomla-tips%2Fsvn-per-joomla

于 2013-07-16T09:47:25.377 回答