結(jié)構(gòu)
將要升級(jí)的文件按原目錄結(jié)構(gòu)存放
和程序要一起打包的文件有:
version.txt:版本信息
delete.txt:要?jiǎng)h除的文件清單(一行一個(gè)文件)
table.sql:新版的數(shù)據(jù)表結(jié)構(gòu)文件,用于執(zhí)行比較新舊版本數(shù)據(jù)結(jié)構(gòu),并調(diào)整更改
update.sql:要執(zhí)行的SQL文件(單獨(dú)執(zhí)行)
run.php:如果升級(jí)涉及到比較復(fù)雜的操作,可以在這里寫PHP文件引入執(zhí)行
升級(jí)原理順序
遠(yuǎn)程獲取升級(jí)包數(shù)據(jù)
將 ZIP 壓縮包下載到 _data 目錄下
將下載好的壓縮包解壓到 _data/update/ 目錄下
歸納整理文件(主要是收集:version.txt,delete.txt,table.sql,update.sql,run.php)
將 framework 這個(gè)目錄的文件及文件夾移到現(xiàn)有程序的核心框架(可能用戶會(huì)因?yàn)榘踩蚋拿?/p>
移動(dòng)其他目錄文件(或創(chuàng)建目錄)
刪除delete.txt清單中的文件【非必須】
執(zhí)行 table.sql 操作(比較表結(jié)構(gòu),更新到最新的表結(jié)構(gòu))【非必須】
運(yùn)行 update.sql 或是其他的 sql 文件【非必須】
運(yùn)行 run.php 執(zhí)行復(fù)雜的升級(jí)操作【非必須】
刪除 _data/update/ 下的文件
基于 version.txt 更新版本記錄
特別說明
table.sql 必須是完整的數(shù)據(jù)表結(jié)構(gòu),才能進(jìn)行升級(jí)比較,基本上這個(gè)操作比較復(fù)雜,不推薦使用
delete.txt 主要是刪除文件操作,除非涉及到安全漏洞,一般我們沒必要執(zhí)行刪除操作
update.sql 這里執(zhí)行的SQL是不進(jìn)行判斷的,如果涉及到升級(jí)一關(guān)失敗了,可能會(huì)出錯(cuò)(除非SQL里有寫好相應(yīng)的判斷)
run.php 重點(diǎn)在這里,這個(gè)文件意味著可以完全嵌入執(zhí)行PHP,可以用PHP來寫數(shù)據(jù)表的增刪查改,也支持文件的刪除,也支持?jǐn)?shù)據(jù)表結(jié)構(gòu)的更新等等!一般OK程序的升級(jí)都會(huì)有這個(gè)的(純文件覆蓋更新連這個(gè)都可以忽略的)