從 Log / MySQL 版升級至 PIO 版教學

本條目說明如何從舊有版本經過轉換步驟後保留舊有資料升級至 PIO 版本,而不必從零開始。注意直接升級會有許多限制,如果想體驗 PIO 版完整功能 (PIO SQLite, PostgreSQL; FileIO FTP, ImageShack, Satellite 等支援) 建議還是全新使用。

適用對象

使用 Pixmicat!-Log 或 MySQL 版系統已有一段時間,版面亦累積不少文章及圖檔,希望能享受 PIO 版新功能及改進,但又希望能保留舊有圖檔及文章資料者。

限制

  • 只保證從 Pixmicat!-Log 或 Pixmicat!-MySQL 保留原資料升級,其他系統恕無法保證成功
  • 直接升級後無法切換 PIO 及 FileIO,PIO 後端只能跟舊版相同、FileIO 只能設成 normal 本機模式
  • 只提供單向升級,無法反悔復原 (Log 版提供舊版資料備份,MySQL 則直接升級資料表,請評估後再做決定)
  • 無法將舊有 Log / MySQL 資料轉換到新的 SQLite, PostgesSQL 後端1

步驟

取得公用程式

在 SVN 版本庫有 Utilities 目錄,其內存放 PIO 公用程式。依舊版 (Log/MySQL) 下載適當的 XXX2pio.php。

進行舊版本資料格式轉換

請先對外告知使用者升級的事項,並提醒使用者於升級期間勿瀏覽使用。

接著請連接到伺服器,準備上傳資料格式轉換器 (XXX2pio.php 檔案),請記得要對應目前使用的版本。以 Log 版為例,請將公用程式 log2pio.php 上傳至 Pixmicat!-Log 程式所在目錄,與舊有 config.php 放在同一個目錄下,以讓轉換器能讀取舊有環境。

接著以瀏覽器瀏覽 XXX2pio.php,運作過程將會讀取舊的文章結構並升級成新的架構,請耐心等待。如果是 Log 版的 log2pio.php,執行完成後會將舊的投稿文字記錄檔更名 (ex: img.log -> img.log.old) ,如果轉換失敗至少還有重來或反悔的機會。而 MySQL 版的 mysql2pio.php 則直接更動舊有資料表結構,沒有辦法還原。

如果執行後印出結果不是錯誤訊息則表示轉換成功。

將舊版程式以 PIO 版升級取代並更新設定

建議操作下列步驟之前,先對整個舊版程式作備份 (/src, /thumb 則不必,升級過程不會動到這些目錄),以免舊有的mainstyle.css 樣式修改、PTE 樣版引擎使用樣版、舊有設定檔 config.php 等被覆蓋

接下來請回到 PIO 版壓縮包,舊版程式備份完成後將壓縮包內檔案解壓縮後上傳至伺服器 (pixmicat.php 和 config.php 先不要上傳!)。注意到 lib 目錄下所有檔案皆是 PIO 版核心架構,請保留原有結構上傳。

再來請用文字編輯器開啟 PIO 版壓縮包內的 config.php,作重新設定的動作。雖然大多數的設定值 PIO 版與舊有 Log / MySQL 版重複,但建議還是參照舊版設定檔來重新修改新版 config.php,而不要直接拿來用。

注意到 FileIO設定 和 PIO資料來源設定 兩部分,這邊因為是直接升級,為了相容舊有環境需要特別注意:
(參照:PIO -> config.php 連線字串設定, FileIO -> config.php 參數設定)

// FileIO設定

FILEIO_BACKEND
只能設 normal,這是因為要使用舊有的 /src 和 /thumb 目錄內的圖檔
FILEIO_INDEXLOG, FILEIO_PARAMETER
不必更動

// PIO資料來源設定

CONNECTION_STRING
只能使用舊版來源 (Log 請用 log://, MySQL 請用 mysql://),設定值也請參考舊版設定修改。

修改完成的新 config.php 請上傳到伺服器,取代舊有的 config.php。

最後開啟 PIO 版主程式 pixmicat.php,將接近檔案底部的:

init(); // ←■■!程式環境初始化,跑過一次後請刪除此行!■■

刪除或前頭加上 // 使成註解,儲存後也上傳至伺服器,至此升級至 PIO 版完成。

測試看看是否完成

不能因此大意,請以瀏覽器瀏覽新的 pixmicat.php 位置,並重新生成靜態快取 (管理區→更新文章)。如果版面沒有什麼問題那代表升級完成,可以試著發篇文確定 PIO 設定正確,之後便可以再度公開供使用者瀏覽使用。

舊版程式備份如果不需要則可以刪除,至此恭喜您成功升級了!

參見

討論

新增一則回應
登入為 Wikidot 使用者
(將不會發佈)
- +
除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.