码迷,mamicode.com
首页 > 其他好文 > 详细

开源进销存PSI - 系统升级

时间:2015-03-05 22:28:07      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:

TODO: 这个文档我会不断更新

PSI作为一款应用,随着时间的过去,会面临如下的挑战:

1、PHP代码如何升级?

2、数据库如何升级?


下面的方法,都是在客户没有自己做修改定制的前提下(客户自己做了修改定制,我基本上就无解)。

1、PHP代码升级,这个容易,下载新PHP代码,再删除原来部署的PHP代码,再部署新版本的PHP代码。

      在:\web\Public\Scripts\PSI\Const.js 这个文件中,记录当前PHP代码的版本。在JS中通过PSI.Const.VERSION就能获得。

      把PHP代码的版本记录在JS文件中,很奇葩,好吧,我承认。因为当时我决定记录版本信息了,头脑一短路,就选了写代码最方便的方式,存在JS中了。不过考虑到JS代码基本要配合这PHP代码一起用,这样来记录版本,也算马马虎虎。

2、数据升级,是比较麻烦的事情。

2.1 需要记录数据库版本,为此我增加了一个表 t_psi_db_version,具体格式见数据库设计文档,这里不多说,通过这个表,就能获得当前数据库的版本。

2.2 但是这个不够,因为如果t_psi_db_version被破坏,还是会出问题。

2.3 这样追溯下去,总的有个版本号得信任。这个能信任的是\web\Public\Scripts\PSI\Const.js 中记录的版本号。

2.4 取得JS中的PSI.Const.VERSION的值,如果这个值不是预定范围内的值(什么是预定范围内,目前我还没有仔细设计),就根本不让登录界面出现。

2.5 增加一个模块“系统升级”

下面说说,系统升级的升级算法。

假设是四个版本状态:V1、V2、V3、V4

当前PSI.Const.VERSION 的值是 V2

2.5.1 判断数据库是否是V2状态,怎么判断?办法是穷举法。一个表一个表地判断表结构是否正确。

        经过穷举法,得出数据库版本如果是V3、V4,那么就不能升级数据库,而是提醒用户PHP代码版本过低。

        经过穷举法,得出数据库版本如果是V2,则提示用户不用升级。

       经过穷举法,得出数据库版本是V1(当然了,比V1版本更低的V0,也没问题),就可以开始升级。



开源进销存PSI - 系统升级

标签:

原文地址:http://my.oschina.net/u/134395/blog/383154

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!