首页 新闻 会员 周边

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

0
[待解决问题]

项目现在到尾期了,
要考虑客户下载过去用,
但是我们官网有bug修复或有新组件发布,新数据库表或者字段增加,
而客户不需要到我们官网下载自己在覆盖或者插数据库,
直接在程序网站后台点一键更新即可在原有程序上实现自动化更新程序,
现在想问问各位大牛们这功能怎么实现,谢谢你的无私分享! 

< >
分享
所有回答(2)
0

原理你应该知道吧?不过好象也只能说说原理了,

1、如果有数据库上的修改,要做好记录,并形成更新数据库的SQL文件。

2、数据库里面做个版本字段,这样可以知道当前用户数据库是哪个版本。

3、软件有个版本字段,用于检查是否需要升级。

4、检查到升级,下载升级文件。

5、运行升级检查,升级数据库。

6、升级程序文件。

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-04-30 11:47
0

谢谢楼上的提示,自己参考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: 更新完成改写客户网站更新时间,并提示可以删除下载的临时更新文件

zhangya4548 | 园豆:204 (菜鸟二级) | 2014-05-04 09:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册