

#backup#备份好习惯

* 养成备份好习惯：
 - 养成备份好习惯，让您终身受用；
 - 备份本系统包含：网站数据库，网站程序文件；
 - 每次升级，大型系统维护请执行；
 - 日常维护，修改配置也请备份；

* 备份数据库
 - [建议/注意]先停止掉服务再备份；
 - 可复制数据库目录（推荐）；
 - 可用命令（高手可用）； 
 - 可用第三方工具，如：Adminer(https://www.adminer.org/) 或 phpMyAdmin(http://www.phpmyadmin.net/)；

* 备份程序文件
 - 主要备份：/imcat 和 /root目录。
 - 重要文件（夹）：/root/cfgs/目录，/root/cfgs/boot/_paths.php文件。


#preset#升级前准备

* 升级前说明
 - 保证升级能正常进行：按下方式，从最新包复制文件覆盖现有目录；
 - 较早版本(v3.0)，其实缺少升级文件，所以也按此方式复制文件即可；

* 覆盖升级文件
 - /imcat/core/下：blib/clib/glib/sdev子目录
 - /root/tools/setup下文件 (除index.php安装入口)
 - /root/cfgs/boot/cfg_load.php 自动加载配置 如果需要手动对比$_cfgs['acdir']配置
 
* 再次备份配置
 - /root/cfgs/目录，
 - /root/cfgs/boot/_paths.php文件
 - 设置 /imcat 和 /root 目录可写（升级时要复制添加文件或修改文件）。

* 执行入口：
 - 升级入口：/root/tools/setup/upvnow.php
 - 执行顺序：从上到下，从左到右，点击按钮，逐步更新


#update#升级提示

* 文件升级：
 - /imcat, core/下：新增加的文件和大部分修改过的文件，会直接复制过来；
 - 因要复制文件，所以请设置/imcat, core/两目录可写；
 - 少数配置文件，会提示对比，请认真对比，更新。
 - 手动处理/views/模板目录，请自行手动处理；注意需要更新_pub/jslib子目录的文件（通用js库）；
 - 手动处理/static, /vendor, /vendui目录：一般可直接复制最新包的文件覆盖过来；
 - 手动处理/root/run/目录：如果手动修改过入口地址，请自行处理（如删除这里的入口文件）；
 
* 数据库结构升级：
 - 新增加的表和字段，会直接更新过来；
 - 修改过字段，会提示对比，请认真对比，更新。
 - 新增和修改过的索引，会提示对比，请认真对比，更新。
 
* 数据资料升级：
 - 新增加的表和字段，资料一起升级过来；
 - 新增加的配置：表名为base,bext开头的，会一起升级过来；
 - 修改过的配置：会提示对比，请认真对比，更新。


#import#导入旧版数据

* 重要提示：
 - 具体导入操作，请根据比较后得出的sql语句，手动（可选择需要的数据）复制运行；
 - 导入之前，请先后台设置（添加修改字段）或 可手动修正数据库结构；
 - 修正数据库结构后，可重新初始化缓存再对比，以达到可导入数据的条件。

* 设置对比数据库：
 - 设置配置文件：/root/cfgs/excfg/ex_outdb.php (下方的$_cfgs相关配置)
 - 提示：可从旧版的/root/cfgs/boot/cfg_db.php中复制过来

* 初始化缓存：
 - 请首先执行

* 增减的表：
 - add : 新系统增加的表
 - old : 旧系统多出的表

* 修改的字段：
 - edit : 修改的字段
 - add : 新系统增加的字段
 - old : 旧系统多出的字段
 - skip : 修改的字段(但可忽略更新)

* 增减的索引：
 - add : 新系统增加的索引
 - old : 旧系统多出的索引


#endset#升级后注意

* 通用升级方式选择建议
 - 如果升级的版本只相差一个，如从v3.1升级到v3.2，一般可选择自带[升级程序]
 - 如果升级的版本相差较大，如从v3.0升级到v3.5，建议选择[导入旧版数据]
 - 另：具体版本差异，提示，请见相关发布页

* 备份升级记录
 - 目录：/xvars/dtmp/update/
 - 可复制出这里所有文件，备份起来，以供后续必要时追查分析
 
* 清理善后
 - 删除或移开目录 /root/tools/setup/，让下面的php文件不可执行
 - [建议]设置 /imcat 和 /root 目录不可写。

