结构
将要升级的文件按原目录结构存放
和程序要一起打包的文件有:
version.txt:版本信息
delete.txt:要删除的文件清单(一行一个文件)
table.sql:新版的数据表结构文件,用于执行比较新旧版本数据结构,并调整更改
update.sql:要执行的SQL文件(单独执行)
run.php:如果升级涉及到比较复杂的操作,可以在这里写PHP文件引入执行
升级原理顺序
远程获取升级包数据
将 ZIP 压缩包下载到 _data 目录下
将下载好的压缩包解压到 _data/update/ 目录下
归纳整理文件(主要是收集:version.txt,delete.txt,table.sql,update.sql,run.php)
将 framework 这个目录的文件及文件夹移到现有程序的核心框架(可能用户会因为安全原因改名)
移动其他目录文件(或创建目录)
删除delete.txt清单中的文件【非必须】
执行 table.sql 操作(比较表结构,更新到最新的表结构)【非必须】
运行 update.sql 或是其他的 sql 文件【非必须】
运行 run.php 执行复杂的升级操作【非必须】
删除 _data/update/ 下的文件
基于 version.txt 更新版本记录
特别说明
table.sql 必须是完整的数据表结构,才能进行升级比较,基本上这个操作比较复杂,不推荐使用
delete.txt 主要是删除文件操作,除非涉及到安全漏洞,一般我们没必要执行删除操作
update.sql 这里执行的SQL是不进行判断的,如果涉及到升级一关失败了,可能会出错(除非SQL里有写好相应的判断)
run.php 重点在这里,这个文件意味着可以完全嵌入执行PHP,可以用PHP来写数据表的增删查改,也支持文件的删除,也支持数据表结构的更新等等!一般OK程序的升级都会有这个的(纯文件覆盖更新连这个都可以忽略的)