Tar*_*ski 8 migration deployment patch
我是一个开发团队的一员,该团队使用Joomla和Drupal等系统处理许多基于CMS的项目.
在我们的开发过程中,我们所有的代码更改都在Git内部进行管理.在sprint结束时,我们创建一个DIFF,我们可以通过补丁应用到实时站点.
问题是大多数时候,变化包括
Git Diff可以很好地处理源代码更改.二进制文件仅包含在Diff中,除非引用文件已更改.
数据库架构更改和数据库数据更改是一团糟.
如果存在可用于在1个补丁中部署所有这些更改的统一补丁系统,我就会徘徊.
所以问题是,"是否有一个系统可用于在一次拍摄中部署所有这些变化?
理想情况下,该系统允许像补丁那样运行干运行,但是对于所有4种数据类型都是如此.
编辑:感谢大家提供的反馈,这是我在这方面的研究的起点.
这是我到目前为止发现的:
使用Linux打包系统部署基于php的应用程序很困难,因为项目的更改是迭代发生而不是发布.
可以使用dbconfig将更改部署到项目,但问题是生成mysql db diffs(架构和数据)
部署基于php的应用程序真正缺少的是一个部署管理器,它将安装在服务器上,并且是部署补丁的接口
我在这个主题上开了一个Google Wave,结果产生了很多信息.如果有人有兴趣阅读此浪潮,请告诉我,我会加你.
为了处理应用程序的安装和升级,我们使用debian 打包系统。(.deb 包)
背景:我们正在制作 J2EE + Flex 应用程序。通过 VPN 进行运输和管理。所以离你并不远。
一个版本的全新安装和升级是通过 puppet (一个用于自动执行系统管理任务的系统:他安装我们的 .deb )进行的
在 .deb 中我们有
= 全新安装的所有内容
我们还添加了从一个版本转到另一个版本的信息
=> 一旦 .deb 正确制作,我们就可以通过一次操作无缝安装或升级。(它是自动生成的,没有任何提示)。
每个版本都有一个 .deb,每个 .deb 都有一个版本号和一个签名。您可以选择我们的任何 .deb 并进行全新安装或从实际版本升级到他持有的版本号。
.deb 位于我们的持续集成系统中。(我们每小时构建一个 .deb,就像我们即将发布新版本一样)
有什么好处?
根据您的具体情况
* Database Schema Changes
* Database Data Changes
* Source Code changes
* Binary file changes (like images)
Run Code Online (Sandbox Code Playgroud)
数据库 => 您必须编写迁移脚本。每个版本一个。(例如:1.2-update.sql 1.3-update.sql)
源代码和二进制=>添加它们,比如说在女巫版本中它们必须被复制/使用
编辑:我不确定源代码。我们正在使用编译代码来做到这一点......
一些启动链接:
https://wiki.ubuntu.com/PackagingGuide/Complete
http://www.debian.org/doc/manuals/maint-guide/index.fr.html#contents(法语)
[1]:http://pwet.fr/man/linux/formats/dbconfig dbconfig
[1]: http: //www.debian.org/doc/FAQ/ch-pkg_basics.en.html debian