微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

部署 – 如何部署:1个补丁中的数据库,源和二进制更改?

我是一个开发团队的成员,该团队使用Joomla和Drupal等系统处理许多基于CMS的项目.

在我们的开发过程中,我们所有的代码更改都在Git内部进行管理.在sprint结束时,我们创建一个DIFF,我们可以通过补丁应用到实时网站.

问题是大多数时候,变化包括

>数据库架构更改
>数据库数据更改
>源代码更改
>二进制文件更改(如图像)

Git Diff可以很好地处理源代码更改.二进制文件仅包含在Diff中,除非引用文件已更改.

数据库架构更改和数据库数据更改是一团糟.

如果存在可用于在1个补丁中部署所有这些更改的统一补丁系统,我就会徘徊.

所以问题是,“是否有一个系统可用于在一次拍摄中部署所有这些变化?

理想情况下,该系统允许像补丁一样运行干运行,但对于所有4种数据类型.

编辑:
感谢大家提供的反馈意见,这是我在这方面的研究的起点.

这是我到目前为止发现的:

>基于PHP部署很困难
使用linux打包的应用程序
系统因为改变了
项目反复进行
然后作为发布.
>可以使用dbconfig将更改部署到a
项目,但问题是
生成MysqL db diffs(schema
和数据)
>部署基于PHP的应用程序真正缺少的是什么
一个部署经理
安装在服务器上并且会
是部署的接口
补丁

在这主题上开了一个Google Wave,结果产生了很多信息.
如果有人有兴趣阅读此浪潮,请告诉我,我会加你.

解决方法

为了处理我们的应用程序的安装和升级,我们使用 debian packaging system .(.deb包)

背景:
我们正在制作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

原文地址:https://www.jb51.cc/mssql/78476.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐