场景:
我的团队为我们的客户管理多个Joomla网站。当我们管理网站的开发/托管时,客户端进行所有的内容更新(创建文章、内容、上传图像等.)
我们在以下标准配置中运行这些网站
客户端(每天)对生产服务器进行所有内容更新。另外两台服务器主要用于新的开发和测试。
我们目前正在使用,BitBucket作为我们的SVN为这些网站(我们刚刚开始)。目前,所有属于该网站的文件都存储在回购程序中。
问题
根据当前的设置,如果开发人员对dev环境进行更改,然后将更改集推送到生产环境中,我们最终会覆盖客户端在生产环境中所做的所有内容更新。
我的问题
我们如何成功地利用源代码管理系统,并保持灵活性,使客户端能够继续直接在生产服务器上进行更新,而不必强迫他们对dev、暂存和生产进行内容更改?
发布于 2014-09-15 17:16:37
虽然您简要地描述了您的工作流程,但是有一些事情需要考虑。没有一般规则,但请注意以下建议:
发布于 2014-09-15 15:46:20
有些事情不应该在版本控制中。
一般来说,源代码应该是版本化的,而数据不应该是版本的。我不熟悉Joomla,但是任何类型的“上传内容”目录都应该位于版本控制系统的忽略文件中。这样,您就可以将更改部署到软件中,而不必担心覆盖数据。
当然,您的数据应该定期备份,但这不是修订控制的目的。
发布于 2014-09-16 06:08:22
如果你有
您需要部分数据库更新以及文件同步。
数据库相当困难,因为资产表可能会受到暂存服务器上的配置更改和生产服务器上的新内容的影响;对于这个表和任何其他共享表,我们通过确保更新后的ids不冲突来解决这个问题。
尽管--引用大多数其他答案--修改控制并不适用于数据或数据库,但它确实非常好,特别是使用了预提交挂钩和后提交挂钩来执行所需的数据库操作;但是,从rsync-rdiff到phing到ant - maven的任何脚本/发布工具都可以。
https://stackoverflow.com/questions/25851270
复制相似问题