從本機到線上:「上線」會取代什麼
「上線」選擇「全部」時,會用你本機的版本取代線上網站的資料庫和檔案。線上的文章、頁面、設定、用戶、留言和 WooCommerce 訂單,都會換成你本機資料庫裡的內容,不會合併。只有檔案只會送出佈景主題、外掛和媒體,線上資料庫完全不動。這篇教學一步一步說明過程,以及怎麼保護已有真實訂單的商店。
作者:Oberon Lai。我是 ShipPress(Codotx, LLC)的開發者,所以這是我們自己的產品。
-
按下「上線」之後發生什麼事
ShipPress 在你的 Mac 上用 SQLite 資料庫執行 WordPress,所以線上主機不能直接收一份檔案副本。按下上線之後:
- 先打包。把整個本機資料庫匯出成 MySQL 檔,把本機網址改成線上網址(連序列化資料裡的也會改),再把
wp-content打包。 - 去掉只屬於本機的部分。SQLite 外掛、本機自動登入工具、ShipPress 自己的編輯輔助檔、agent 資料夾和
wp-config.php都不會送出。主機保留自己的資料庫帳密。 - 先備份一份線上資料庫(InstaWP 和 SSH 主機),存到本機網站裡的
.aiwp/snapshots/remote/,保留最新五份。如果匯出失敗或內容是空的,上線會停下來,什麼都不會改。 - 把檔案和資料庫送到主機,把資料表前綴換成線上網站使用的前綴,取代網址並清除快取。
- 如果 SSH 上資料庫匯入失敗,會自動把剛才備份的那份匯回去。在 InstaWP 上,ShipPress 會告訴你備份存在哪裡。
AI Worker 正在改網站,或排程工作(備份、更新)正在跑的時候,上線會先等它們完成,所以做到一半的修改不會跑到線上。
- 先打包。把整個本機資料庫匯出成 MySQL 檔,把本機網址改成線上網址(連序列化資料裡的也會改),再把
-
什麼會被取代,什麼會保留
在上線視窗的更多選項裡,可以選要送什麼。進階模式還可以把檔案縮小到佈景主題、外掛或媒體。
選項 線上資料庫 線上檔案(wp-content) 全部(預設) 被取代,換成你本機的資料庫 本機檔案會複製過去 只有檔案 不動:文章、頁面、設定、用戶和訂單都留著 送出佈景主題、外掛和媒體 只有資料庫 被取代 不動 對線上資料來說,意思是:
線上資料 全部 只有檔案 只有資料庫 WooCommerce 訂單和顧客 被取代 保留 被取代 用戶和密碼 被取代 保留 被取代 留言 被取代 保留 被取代 文章、頁面、設定、選單 被取代 保留 被取代 - ShipPress 不會篩選資料表,也不會合併資料列。只存在於線上的 WooCommerce 訂單,不在你本機的匯出檔裡,所以用「全部」送出之後,線上資料庫就沒有它了。上線前備份的那份線上資料庫還找得到。
- 在 SSH 主機上,檔案會複製到線上的
wp-content,不會刪除只存在線上的檔案。用「只有檔案」時,只有跟本機同名的線上檔案會被覆蓋。
-
把線上網站拉回 Mac
應用程式 → 所有網站 → 從主機拉回(進階模式)可以下載線上網站。你可以選新網站,不動目前開著的網站;或選取代現在開著的網站,這個需要勾選方塊,確認你知道本機網站會被取代。
ShipPress 會讀取線上資料庫和
wp-content,匯入本機。只會執行資料表和資料列的指令,檔案會安全解壓縮(不會有路徑穿越,不含wp-config.php,也不含 ShipPress 的本機輔助檔),線上網址會換成本機網址。如果拉回來的資料庫沒有管理員,會建立一個本機admin帳號讓你登入。跟上線一樣,拉回也可以只拉檔案或只拉資料庫。取代開著的網站之前,ShipPress 會先存一個名為 pre-pull 的還原點,匯入失敗時會自動放回去。可以從 InstaWP 和任何能用 SSH 連上的主機拉回。Hostinger 要拉回需要 SSH,Business 方案以上才有。
- 隱私。完整拉回會把顧客資料(訂單、電子郵件、地址)放到你的筆電上。不需要的話,只拉檔案。
- 拉回只是一個時間點的快照。之後線上發生的事不在你的副本裡,之後如果用「全部」送出,這些也會被取代。
-
還原:還原點和線上資料庫備份
ShipPress 會在每次 AI 修改之後、每次拉回之前、每次還原之前,以及你手動儲存時,在電腦上存一個還原點。預設每個網站保留最新 30 個(最少 5 個)。還原點包含本機資料庫、你自訂的佈景主題和媒體資料夾,不包含外掛和 WordPress 內建佈景主題,也不會動到線上網站。還原之前會先再存一個還原點,所以還原本身也能復原。
線上網站有兩層保護:
- 上線前備份的線上資料庫(InstaWP 和 SSH):本機網站裡
.aiwp/snapshots/remote/的.sql檔。用 SSH 的wp db import或主機的資料庫工具匯回去。這只是資料庫副本,不含檔案。 - 主機自己的備份。在 Hostinger 上,ShipPress 無法透過 API 備份資料庫,所以會改開 hPanel 的備份頁面。用「全部」送出之前,請先在那裡做一份備份。
- 上線前備份的線上資料庫(InstaWP 和 SSH):本機網站裡
-
網站有真實資料時的安全流程
全新網站,還沒有真實訂單或用戶:選「全部」就對了。確認上線視窗裡的網址,按上線,再打開線上網站下一筆測試訂單。
網站已經有真實資料:
- 先在測試站試一次。在主機建一個測試站,或用一個用完即丟的 InstaWP 網站,先上線到那裡,檢查一筆訂單、一個用戶和一則留言,再動正式站。
- 先判斷改了什麼。佈景主題、設計和程式碼在檔案裡;頁面、文章、商品、設定和選單在資料庫裡。
- 只改了設計或程式碼,就用「上線 → 更多選項 → 只有檔案」。線上的訂單、用戶、留言和內容完全不動。如果只改了佈景主題,只勾選佈景主題(進階模式),WooCommerce 這類外掛的檔案才不會被換成你本機的版本。
- 改了資料庫裡的內容,就到線上網站的 wp-admin 做同樣的修改。先用 Mac 上的副本試。有訂單進來的商店,不要用「全部」覆蓋。
- 一定要把資料庫送到線上商店時,把它當成一段短暫的維護時間。先在主機後台做備份。開始編輯之前,先用「全部」拉回一次,讓你的副本有最新的訂單和用戶。編輯時間要短:拉回之後才下的訂單,送出後會不見,只留在上線前備份的線上資料庫裡。上線後,檢查一筆訂單、一個用戶和一則最近的留言。
- 檢查結果。上線之後的訊息會告訴你,之前的線上資料庫存在哪裡。確認網站沒問題之前,先保留那個檔案。
- 要繼續編輯,就再拉回一次,不要在過期的副本上改。
-
ShipPress 目前還沒有的功能
這些我想直接告訴你:
- 沒有合併,也沒有資料表篩選。沒有「保留線上訂單和用戶」的開關。「全部」和「只有資料庫」會取代每一張資料表。
- 警告是通用的。上線視窗只說會覆蓋全部內容,沒有點名訂單、用戶或留言。
- 沒有一鍵還原備份的線上資料庫,而且只保留最新五份。
- App 裡沒有測試站,也沒有本機與線上的比對。
- 送出進行中收到的訂單可能會遺失,因為會先複製線上資料庫,之後才取代。
免費網址這條路是另一回事:它只發佈純檔案,不適合 WooCommerce 商店,所以以上都不適用。
-
接下來
剛開始用?先安裝 ShipPress(免費,Mac),再看上線和從主機下載網站。
如果你在 ShipPress 上經營商店,而這些限制讓你擔心,請告訴我你希望有什麼:資料表篩選、還原按鈕、會算出線上訂單數的警告?請用聯絡我們。我想做大家真正需要的東西。
— Oberon Lai,ShipPress 開發者