1. 程式人生 > >discuz!7.2升級discuzX3.2,流程文件(有二次開發)

discuz!7.2升級discuzX3.2,流程文件(有二次開發)

由於官方給出的教程大多需要備份原來的資料庫以防升級失敗,風險較高,所以本教程不論升級成功與否,對原來的discuz資料庫是完全沒有影響的。

如果discuz與第三方站點有同步登陸等聯絡的,升級之前需要先將discuz與第三方站點解綁,保證discuz關閉後對與之關聯的第三方站點沒有影響。

示例為discuz!7.2_FULL utf-8版本升級至discuzX3.2版本(其他版本思路一樣)

整體思路是:將discuz!7.2的所有資料升級至discuzX3.2版本的資料,然後將已經二次開發好的基於discuzX3.2程式連線至升級後的資料庫即可。

具體步驟:

1.全新安裝DiscuzX2(此過程會新建一個X2版的資料庫);

然後轉換資料(discuz!7.2 --> discuzX2),拷貝utility下的convert資料夾至根目錄,在瀏覽器中輸入“根URL/convert”進行資料轉換,

資料來源填寫資訊填寫原7.2的資料庫資訊,下面的目的庫填寫剛新建的X2的資料庫資訊,點選儲存進行轉換,直至完成(此過程沒有轉換ucenter資料,即XX_ucenter_xx表的資料)。

轉換ucenter資料,進入原7.2論壇》管理中心》ucenter》資料備份,然後將原7.2 uc_server》data》backup下面剛剛備份的資料夾拷貝到X2論壇uc_server》data》backup下面,打資料開X2論壇uc_server》data》backup下面備份的sql檔案,編輯,修改表名字首,如:“d72_uc_”全部替換成“dx2_ucenter_”,儲存,進入X2論壇管理中心》ucenter》資料備份》資料恢復,

此時原7.2ucenter所有的資料就都過來了。

將discuzX2新增至X2的ucenter管理中心;使用原7.2ucenter的管理員登陸X2以繼續操作,進入管理中心》ucenter》應用管理,這裡列出的就是原7.2的應用,刪除,然後新增新應用.......將X2新增到ucenter中,新增完,通訊成功之後,需要點選該應用右側的編輯,拖到最底下,將該應用的ucenter配置資訊拷貝然後覆蓋X2相應的配置,此時如果沒出什麼問題,論壇已成功升級到了X2版本。

拷貝附件(論壇圖片和使用者頭像);將7.2 attachments下所有檔案拷貝到X2 data\attachment\forum下面,

 將7.2 uc_server\data\avatar下面的所有檔案拷貝到X2 的 uc_server\data\avatar下面上面的完成之後,需要檢查一下:論壇帖子,使用者,論壇帖子內圖片,使用者頭像等資料是否正常,然後檢查修改使用者頭像功能是否正常(很重要)。

2.升級X2至X3.2;在X2根目錄下新建一個資料夾oldbbs,將除config,data,uc_client,uc_server之外的所有檔案剪下到oldbbs中,將discuzX3.2 upload下的所有檔案拷貝到X2跟目錄下,覆蓋,將X3.2utility下的update.php拷貝到X2 install目錄下面(修改update.php,319行增加:if($key == "username") $value = "char(150) NOT NULL DEFAULT '' ";),刪除其中的index.php,然後編輯update.php,找到:if(version_compare($version, '1.5.2') <= 0) ,將“<=”修改為“>=”(update時會提示ucenter版本低,其實已經是1.6)。然後在瀏覽器中輸入:”X2論壇url”/install/update.php,資料升級完成,如果沒出什麼問題,論壇已經成功升級到discuzX3.2版本。最後,將我們開發好的基於discuz3.2的二次開發版連線到剛剛升級完的資料庫上面,修改三個地方的配置檔案:config/config_global.php,config/config_ucenter.php,uc_server/data/config.inc.php:將剛剛X2下面的config檔案拷貝過來覆蓋我們二次開發程式下的config資料夾,編輯config檔案件下config_ucenter.php,將uc_api修改為二次開發後對應的地址,拷貝剛剛X2下uc_server/data/config.inc.php覆蓋二次開發程式下對應的檔案,修改uc_server/data/config.inc.php中的uc_key。然後重複附件拷貝的操作。

3.沒有問題之後,刪除oldbbs資料夾、convert資料夾和install下的updata.php檔案。大功告成!!!

此過程對原來的discuz7.2的資料庫完全沒有影響,如果升級失敗,直接切回原來的資料就行。

可行性:本公司線上discuz論壇已使用本方案成功升級,沒有問題。