更新 EmDash

本頁內容

本指南面向網站營運人員:執行基於 EmDash 建構的網站並希望更新到較新版本的人。它涵蓋了 emdash 套件和 @emdash-cms/cloudflare。外掛套件有自己的指南 Upgrading plugins on your site,而您自己集合和欄位的變更在 Evolving a Deployed Site 中介紹。

發布和版本號

EmDash 在 1.0 版本之前發布,其版本號遵循兩條規則:

  • 修補版本,例如 0.35.0 到 0.35.1,包含錯誤修復和小改進。
  • 次要版本,例如 0.35 到 0.36,包含新功能和任何破壞性變更。破壞性變更在其發布條目中標記為 Breaking,條目中說明了需要您採取的操作。

emdash@emdash-cms/cloudflare 一起發布並共用一個版本號。@emdash-cms/cloudflare 依賴於完全匹配的 emdash 版本,因此請在一步中更新這兩個套件。@emdash-cms/plugin-forms 等外掛套件有自己的版本號,並宣告所需的最低 emdash 版本。

發布頁面 每個套件和版本有一個條目。在更新之前,閱讀您安裝的版本到目標版本之間的 emdash 條目,如果網站在 Cloudflare 上執行,還需閱讀 @emdash-cms/cloudflare 的相同範圍。

更新前

進行備份。新版本套用到資料庫的核心遷移沒有復原步驟,因此備份是恢復到先前狀態的唯一方法。Backups 描述了每種資料庫的選項。

檢查建置網站的機器上的 Node.js 版本,以及對於 Node.js 部署的伺服器上的版本。Getting Started 列出了支援的版本。

更新套件

以下命令使用 pnpm 和從 Cloudflare 範本建立的網站。對於 Node.js 部署,請省略 @emdash-cms/cloudflare

  1. 檢查已安裝的版本和最新版本。

    pnpm outdated emdash @emdash-cms/cloudflare
  2. 將兩個套件更新到最新版本。

    範本產生的 package.json 使用如 ^0.35.0 的脫字符範圍列出套件。對於 1.0 以下的版本,脫字符範圍僅允許修補版本(0.35.1 可以,0.36.0 不可以),不帶其他選項的 pnpm up 會保持在範圍內。--latest 旗標將範圍重寫為最新版本並安裝它。

    pnpm up --latest emdash @emdash-cms/cloudflare

    package.json 中的外掛套件也加入到同一命令中。

  3. 建置網站。

    pnpm build

    建置會為已安裝版本寫入遷移清單。如果建置失敗,請參閱 更新後網站出問題

  4. 在本機啟動網站並在 /_emdash/admin 開啟管理後台。

    pnpm dev

    EmDash 整合在開發伺服器啟動時產生 emdash-env.d.ts。待處理的核心遷移在第一次請求時執行。

部署和驗證

像任何其他變更一樣部署建置。以下命令部署 Cloudflare 網站;對於 Node.js 部署,使用新建置重啟伺服器程序。

pnpm wrangler deploy

使用預設的執行時遷移模式 auto,部署的網站在第一次請求時套用待處理的核心遷移。要在新程式碼接收流量之前套用遷移,並在之後驗證已部署的資料庫,請按照 Manage Core Database Migrations 操作。其 emdash migrate --check 命令在已部署資料庫存在已安裝版本的待處理或未知遷移時以非零退出。

部署後,開啟管理後台和網站的一個公開頁面。

更新後網站出問題

  • 建置失敗,或您自己的頁面在執行時出錯:閱讀跳過版本中標記為 Breaking 的發布條目,並進行其中說明的變更。
  • 外掛載入失敗:閱讀外掛自己的發布條目和 Upgrading plugins on your site
  • 錯誤提到 Astro API 或 @astrojs/* 套件:EmDash 需要 Astro 6 或更高版本。Astro 的升級指南解釋了如何一起更新 astro 及其官方整合。
  • 要返回之前的版本,請重新安裝套件的先前版本。重新安裝不會復原核心遷移;如果之前的版本在遷移後的資料庫上失敗,請恢復更新前的備份。