实现一键更新代码(一键程序升级)

zhangya4548 发布于 2014/04/30 10:51
阅读 1K+
收藏 4
项目现在到尾期了,
要考虑客户下载过去用,
但是我们官网有bug修复或有新组件发布,新数据库表或者字段增加,
而客户不需要到我们官网下载自己在覆盖或者插数据库,
直接在程序网站后台点一键更新即可在原有程序上实现自动化更新程序,

现在想问问各位大牛们这功能怎么实现,谢谢你的无私分享!


1: 官网指定目录需要一个每次升级的版本记录文件
格式: 更新日期,字符集,版本号,更新标题,更新文件的压缩包(压缩包内是更新需要的文件)
20140415,V5.7.41,20140415常规更新补丁,http://fx_az.taodiantong.com/upgrade/upgrade-20140415.zip

2: 获取客户网站的最近更新日期,该日期可存于数据库或者文件)

3: 读取远程官网更新文件信息,然后比对客户网站需要更新那些压缩包

4: 读取远程压缩包的配置文件(该文件记录压缩包内的文件列表),并根据\配置文件判断是否客户网站是否有写入权限,
:
下载的文件临时存放在文件夹(../data/20140415)内,如果某些文件自己有改动导致更新中途中错,您可以从这文件夹提取文件手工更新。
本次升级需要在下面文件夹写入更新文件,请注意文件夹是否有写入权限:
../lib/ 状态:[√正常]
../lib/Article/ 状态:[√正常]
../Public/ 状态:[√正常]

5: 下载更新的文件到临时目录(可以直接下载压缩包在解压出文件)下载过程需要显示文件是否下载ok,完成提示安装更新按钮

6: 点击更新首先判断是否有sql文件,有先更新sql,在更新文件

7: 更新完成改写客户网站更新时间,并提示可以删除下载的临时更新文件

加载中
0
Jack_1900
Jack_1900
表的话,更新第一次启动的时候删除原先的表,重建。自动更新的话,可以通过推送,比如mqtt协议。
0
zhangya4548
zhangya4548

参考了dede子整理了步骤发来大家看下

1: 官网指定目录需要一个每次升级的版本记录文件
格式: 更新日期,字符集,版本号,更新标题,更新文件的压缩包(压缩包内是更新需要的文件)
20140415,V5.7.41,20140415常规更新补丁,http://fx_az.taodiantong.com/upgrade/upgrade-20140415.zip

2: 获取客户网站的最近更新日期,该日期可存于数据库或者文件)

3: 读取远程官网更新文件信息,然后比对客户网站需要更新那些压缩包

4: 读取远程压缩包的配置文件(该文件记录压缩包内的文件列表),并根据\配置文件判断是否客户网站是否有写入权限,
:
下载的文件临时存放在文件夹(../data/20140415)内,如果某些文件自己有改动导致更新中途中错,您可以从这文件夹提取文件手工更新。
本次升级需要在下面文件夹写入更新文件,请注意文件夹是否有写入权限:
../lib/ 状态:[√正常]
../lib/Article/ 状态:[√正常]
../Public/ 状态:[√正常]

5: 下载更新的文件到临时目录(可以直接下载压缩包在解压出文件)下载过程需要显示文件是否下载ok,完成提示安装更新按钮

6: 点击更新首先判断是否有sql文件,有先更新sql,在更新文件

7: 更新完成改写客户网站更新时间,并提示可以删除下载的临时更新文件

返回顶部
顶部