在我们的开发过程中,我们所有的代码更改都在Git内部进行管理.在sprint结束时,我们创建一个DIFF,我们可以通过补丁应用到实时网站.
问题是大多数时候,变化包括
>数据库架构更改
>数据库数据更改
>源代码更改
>二进制文件更改(如图像)
Git Diff可以很好地处理源代码更改.二进制文件仅包含在Diff中,除非引用文件已更改.
如果存在可用于在1个补丁中部署所有这些更改的统一补丁系统,我就会徘徊.
所以问题是,“是否有一个系统可用于在一次拍摄中部署所有这些变化?
理想情况下,该系统允许像补丁一样运行干运行,但对于所有4种数据类型.
编辑:
感谢大家提供的反馈意见,这是我在这方面的研究的起点.
这是我到目前为止发现的:
>基于PHP部署很困难
使用linux打包的应用程序
系统因为改变了
项目反复进行
然后作为发布.
>可以使用dbconfig将更改部署到a
项目,但问题是
生成MysqL db diffs(schema
和数据)
>部署基于PHP的应用程序真正缺少的是什么
是一个部署经理
安装在服务器上并且会
是部署的接口
补丁
我在这个主题上开了一个Google Wave,结果产生了很多信息.
如果有人有兴趣阅读此浪潮,请告诉我,我会加你.
解决方法
背景:
我们正在制作J2EE Flex应用程序.通过VPN运送和管理.
所以离你不远.
通过puppet(一个用于自动执行系统管理任务的系统:他安装我们的.deb)进行全新安装和升级版本到另一个版本
在.deb中我们有
>我们编译的源代码
>数据库的模式(由[db-config] [1]处理)
>二进制的东西
>如何通过apt所有其他应用程序安装(MysqL,tomcat …)
=所有新安装的东西
我们还添加了从版本到另一个版本的信息
>用于升级数据库的脚本(针对每个版本)
>新二进制
>机器启动时的新东西(例如:几周前我们添加了一个activeMQ服务器)
=>一旦正确生成.deb,我们就可以在一次操作中无缝安装或升级. (它是自动生成的,没有任何提示).
Theire是一个.deb每个版本,每个.deb都有一个版本号和一个签名.
您可以选择我们的任何.deb并进行全新安装或从实际版本升级到他持有的版本号.
.deb在我们的连续集成系统中. (我们每小时构建一个.deb,就像我们即将发布一个新版本一样)
有什么好处?
在你的确切情况下
* Database Schema Changes * Database Data Changes * Source Code changes * Binary file changes (like images)
数据库=>你必须编写迁移脚本.每个版本一个. (例如: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