このサイトは非公式の日本語訳です。Cloudflare・EmDashプロジェクトが運営するサイトではありません。

このページで決めること:EmDashの新しい版を、いつ、どの手順で本番のサイトに入れるか

決める前に知っておくこと

EmDashは1.0より前の段階で公開されており、版の番号は次の2つの決まりに従います。

版の種類 含まれるもの
パッチリリース 0.35.0 → 0.35.1 不具合の修正と小さな改善
マイナーリリース 0.35 → 0.36 新機能と、破壊的変更(Breaking)

破壊的変更は、リリースの記載に Breaking と明記され、サイト側で必要な対応が書かれます。emdash@emdash-cms/cloudflare は同時にリリースされ、同じ版番号を持ちます。@emdash-cms/cloudflare は同じ版の emdash を前提にするため、2つは一緒に更新します。プラグインのパッケージは、それぞれ別の版番号を持ちます。

公式テンプレートで作った package.json は、^0.35.0 のような指定でEmDashを登録しています。1.0未満では、この指定で入るのはパッチリリースだけです。マイナーリリースに上げるには、pnpm up --latest emdash @emdash-cms/cloudflare のように --latest を付けて更新します。

更新した版をデプロイすると、既定の auto モードでは、最初のリクエストでコアマイグレーション(データベース構造の変更)が実行されます。コアマイグレーションは取り消せません。前の版のパッケージを入れ直してデプロイしても、データベース構造は戻りません。

公式の推奨

  • 更新の前に、今の版から更新先の版までの emdash のリリース記載(Cloudflareで動かす場合は @emdash-cms/cloudflare も)を読みます。(公式「EmDashのアップデート」)
  • 更新の前に、復元できるデータベースのバックアップと、メディアストレージのバックアップを別々に取ります。JSONのエクスポートでは復元できません。(公式「EmDashのアップデート」「バックアップと復旧」)
  • デプロイ後は、管理画面を開き、公開ページを1つ以上表示し、使い捨てのエントリーの編集・公開と、使い捨てのメディアのアップロード・取得を確認します。予約公開やサンドボックス型プラグインを使う場合は、それも確認します。(公式「EmDashのアップデート」)
  • 新しいコードがアクセスを受ける前にコアマイグレーションを済ませたい場合は、pnpm buildpnpm emdash migratepnpm wrangler deploypnpm emdash migrate --check の順で実行します。(公式「コアDBマイグレーション」)

選択肢の比較

A. 出たらすぐ上げる B. まとめて上げる C. プレビューで検証してから上げる
概要 新しい版が出るたびに、ローカルで確認して本番に入れる 数版をためてから、決めた時期にまとめて本番に入れる 新しい版をまずプレビュー環境で更新・検証し、問題がなければ本番に入れる
向いている場合 改修が少なく、公式テンプレートに近い構成で使っている 更新の作業時間を決まった時期にまとめたい 改修やプラグインが多い。本番で不具合を出したくない
注意点 破壊的変更への対応が、版ごとに発生する 読むリリース記載が増え、複数版の破壊的変更に一度に対応することになる プレビュー環境(D1・R2など)を本番と別に用意し、維持する必要がある
費用と手間 小(版ごとに作業が発生する) 小〜中(1回の作業量が大きくなる) 中(プレビュー環境の費用と、検証の作業が加わる)
根拠にした公式ページ EmDashのアップデート EmDashのアップデート、サイトのプラグイン更新 EmDashのアップデート、Cloudflareへのデプロイ(プレビューデプロイ)、コアDBマイグレーション

別の選択肢が合う条件

公式テンプレートをほぼそのまま使い、自作のコードやプラグインが少ないサイトでは、Aでも更新の負担は大きくなりません。更新作業に使える時間が限られる場合は、Bで時期を決めてまとめる方法もあります。どの方法でも、更新前のバックアップとリリース記載の確認は共通です。

根拠にした公式ページ