【系統升級】b2evolution 失敗的升級 (from 1.10.3 to 2.4.2)

昨晚約 10:00 左右,想說我的部落格系統已有約 10 個月時間沒升級了,再來則是 b2evolution 釋出最新的穩定版本 2.4.2,已經與我現在使用的版本差了一個大版的號碼,功能等應該有增進不少。 依著以往的經驗,升級的時間約兩個小時內應該可以完成的。

參考原先我寫的升級備忘錄: [系統升級] b2evolution from 1.10.2 to 1.10.3,與 【系統升級】b2evolution from 1.8.2 to 1.10-beta

沒想到,整個升級的過程相當不順利。 先是執行 phpmyadmin 所下載回來的資料庫 Dump SQL 檔,全都是亂碼。找了許久,才發現到連線校對系統給我的預設為 utf8-unicode-ci, 我沒看清楚,以為是正確的,結果應該是設定為 utf8-general-ci 才對。 然後,執行升級的程序(script)後,資料庫是可以順利升級沒錯,但是,部落格首頁(以及系統頁面的 Blog設定標籤)總是在最後面會出現錯誤訊息:

An unexpected error has occured!
If this error persits, please report it to the administrator.
Go back to home page
Additional information about this error:
Requested User does not exist!

從官方網站討論區找解答,仍是找不出所以然。 然後又想啟動 DEBUG 模式,結果呢,一啟動 DEBUG 本身也是 Bug,它會出現:

MySQL error!
Variable ‘sql_mode’ can’t be set to the value of ‘TRADITIONAL'(Errno=1231)
Your query:
SET sql_mode = “TRADITIONAL”

又再去查了資料,發現到應該是與 MySQL 版本(只有 v5 以上才支援上述的模式)有關,但是目前我使用的 v4 版本實在不知道如何設定...。

弄到凌晨兩點多,不想再弄了,想說倒回去還原好了。 結果呢,資料庫因為新舊版的 Schema 定義並不一樣,必須砍掉再從我原來的備份檔上傳載入(Import)。使用原來我一直用來很順利的 BigDump.php ,這次竟然不靈,在 Dump 備份檔的過程中,它一直顯示出問題,好像是某一些 INSERT 的資料行有太多的 LF RETURN 符號所致? 只好改用 phpmyadmin,但是又因為備份檔高達 27MB,結果導致 Import 上傳會 Time-out,弄得到後來我只好分批切幾個備份檔,再一一載入,才完成還原的工作。 至於 blog 檔案目錄,就很簡單了,把原先備份在 server 的目錄(已更名),再更名回來就可以了。 弄得灰頭土臉,到今日近 5:00 時才又恢復原來的系統,實在是耗費了一整夜的白工!

這一次最大的教訓就是,應該把原來的資料庫直接給複製到 Server 端另一個資料庫系統就好了,透過 Dump 檔執行還原工作,耗費時間且不是太保險(當然,無論如何還是要 export 備份出來)。 再來就是,應該先在我自己 Local 的 VM(Virtual Machine) 環境內,先預先作過完整的升級過程,待沒有問題的話,再至 Server 端執行升級作業,如此,才能確保升級的順暢,也不致影響部落格平台的運作。

文章導覽

   

共有 1 則迴響

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *