浅谈discuz的程序升级

最近discuz官方发布了新的版本X3.1,为了跟上最新版本,就要升级,网站做了二次开发,所以升级,就要知道更改了哪些东西。

今天看了一下升级文件update.php,得到

$devmode = file_exists(DISCUZ_ROOT.'./install/data/install_dev.sql');
$sqlfile = DISCUZ_ROOT.($devmode ? './install/data/install_dev.sql' : './install/data/install.sql');  还不知道install_dev.sql里面是什么!!

1.      ./install/data/install.sql    数据库结构文件   ,升级时是不删除表重建表的

2.     ./install/data/update.sql    升级文件

  我们最关心的是已有的数据,升级数据库结构时 程序从最新的install.sql文件中获取所有的表,及其结构,循环遍历

如果表不存在,则新建表

表存在 对比索引变更,字段变更来更新表结构

Step:   start

升级界面第一步

所做操作:  确定站点关闭

 

Step: prepare

升级第二步

所做操作: 对现有的数据库进行操作,

    更新表字段,  

    表主键变更(删除旧的主键,建立新的主键)

DB::query("ALTER TABLE ".DB::table('common_failedlogin')." DROP PRIMARY KEY");
        DB::query("ALTER TABLE ".DB::table('common_failedlogin')." ADD PRIMARY KEY ipusername (ip,username)");
View Code

     根据需求清除记录数据 如common_failedlogin表

  条件判断删除冗余数据: common_tagitem

 

Step: sql

升级第三步

所做操作: 数据结构升级

      表不存在,创建表

      对比新旧表的字段,更新索引,字段,添加新的字段

Step: data

升级第四步

所做操作: 更新部分表的数据 (实名功能, 配置项setting,用户栏目, 管理组设置【权限,字段变更】, 导航...),

      关闭所有手动安装的插件(modules 不含有system)

 

Step: delete

升级第五步

所做操作:如果./install/data/install_dev.sql文件存在则执行删除操作,不存在提示一下进入下一步

如果有...删除多余的数据表和字段 

 

Step: style

升级第六步

请确认是否要恢复默认风格

 

Step: cache

升级第七步

缓存更新

posted on 2013-09-25 14:06  bandbandme  阅读(394)  评论(0编辑  收藏  举报