codecamp

OpenSNS升级教程

升级视频教程地址:http://v.youku.com/v_show/id_XMTU2ODcwNTQ2MA==.html?debug=flv

主程序升级:

第一步:等主程序有更新时,网站后台会出现更新提示;进入网站后台-》扩展-》自动升级,可看到远程最新版本和系统当前版本;

可以清晰查看到所有版本,历史版本,当前版本,新版本;点击更新说明中的“查看详情”可以清晰的看到该本版比之前的版本更新的全部内容。

第二步:下载更新包,获取更新文件列表。

点击未升级版本后的“自动升级”进入版本升级页。并自动下载更新包,

在本页可以清晰的看到本次更新涉及的文件和新增的文件,下载完成后会出现【下载完成,比较文件】的按键。

(注:版本需要逐一升级,不能跳版本升级。)

 

第三步:本地文件对比。


点击【下载完成,比较文件】,进入文件比较页;自动比对文件,无冲突文件,进入第四步。

如下图:

图片1.png

注:如果有二次开发过的地方,请开发者朋友手动合并全部文件,然后选择【我已经自行合并代码,跳过文件升级】,进入第五步。如下图:

 

第四步:代码升级

先自动备份文件,然后代码覆盖升级。(自行合并代码的请跳过改步骤)

 

第五步:数据库升级

如果数据库没有升级信息,直接跳过,进入下一步;

如果有升级信息,且没有改动过数据库,点击【我未改动过数据库,升级数据库】;

如果有升级信息,但改动过数据库,请手动核对下面的数据库改动,如存在冲突,请自行修改数据库后,跳过数据库升级。

 

第六步:升级完成。

如果发现升级之后出现问题,请找回备份文件,同时还原备份的数据库。

 

 

模块升级:

第一步:在模块管理中点击【立即查看更新】,可以查看模块是否有更新;模块有更新时会有更新提示。

此外也可以在官方社区订阅模块,当模块有更新时,会收到该模块更新的提示。

注意:收费模块升级前,请确认已经购买更新后的模块,如果没有购买,升级后无法写入token,导致无法再检测模块的最新版。




第二步:进入模块更新页

可以清晰查看到所有版本,历史版本,当前版本,新版本;

注:版本需要逐一升级,不能跳版本升级。


第三步:开始升级,下载更新包,获取更新文件列表。

击未升级版本后的“开始升级”进入版本升级页。并自动下载更新包,

在本页可以清晰的看到本次更新涉及的文件和新增的文件,下载完成后会出现【下载完成,比较文件】的按键。







 第四步:本地文件对比。

点击【下载完成,比较文件】,进入文件比较页;自动比对文件,无冲突文件,进入第四步。

如下图:

 

注:如果有二次开发过的地方,请开发者朋友手动合并全部文件,然后选择【我土豪自行合并代码,跳过文件升级】,进入第五步。

 

第五步:代码升级

先自动备份文件,然后代码覆盖升级。(自行合并代码的请跳过改步骤)。

 

注:升级前会先对文件进行备份,如下图所示的失败项可以忽略,不影响升级。

 

第六步:数据库升级

如果数据库没有升级信息,直接跳过,进入下一步;

如果有升级信息,且没有改动过数据库,点击【我未改动过数据库,升级数据库】;

如果有升级信息,但改动过数据库,请手动核对下面的数据库改动,如存在冲突,请自行修改数据库后,跳过数据库升级。

 

第七步:升级完成。

如果发现升级之后出现问题,请找回备份文件,同时还原备份的数据库。


注意要点:

1.升级前请注意文件权限是否都是最高权限,否则容易出现升级文件显示不出来,无法升级。

如果出现如图所示的问题,请下载附件,覆盖到根目录下后,再次进行升级。


修复自动安装和自动升级的Bug.zip

55a4648a13d88[1].png

2.自动升级失败的用户,请按照提示手动升级。

3.手动升级的用户需要把升级的过程全部进行一次,如已经手动升级过,请跳过该步骤,一直到最后一步本次升级才是升级成功,否则依然会出现升级提示。

4.如果您手动升级的时候,发现升级过程中不涉及数据库改动,可能是您的文件权限过低,无法自动解压下载过来的文件,这样的话,系统会检测不到解压出来的update.sql,自然无法识别是否涉及数据库改动。所以如果您在手动下载下来的升级包中发现有update.sql文件,请手动导入到您的数据库中。

5.如果有修改过源码或是只数据库的用户,请自行合并代码,直接升级容易导致修改过的代码丢失。

6.升级过程中遇到不能解决的问题,请把问题细致描述,并把问题截图,在官方社区中提问。

  


Linux环境搭建网站
OpenSNS网站搬家教程
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OpenSNS模块使用

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }