zoukankan      html  css  js  c++  java
  • 浅谈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

    升级第七步

    缓存更新

  • 相关阅读:
    ACM学习历程——POJ3321 Apple Tree(搜索,线段树)
    ACM学习历程——NOJ1113 Game I(贪心 || 线段树)
    ACM学习历程——HDU5202 Rikka with string(dfs,回文字符串)
    ACM学习历程——hihoCoder挑战赛10A 01串(策略)
    ACM学习历程——POJ3468 A Simple Problem with Integers(线段树)
    ACM学习历程——POJ1260 Pearls(动态规划)
    java入门了解09
    java入门了解08
    java入门了解之快捷键
    java入门了解07
  • 原文地址:https://www.cnblogs.com/bandbandme/p/3338497.html
Copyright © 2011-2022 走看看