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 build→pnpm emdash migrate→pnpm wrangler deploy→pnpm emdash migrate --checkの順で実行します。(公式「コアDBマイグレーション」)
別の選択肢が合う条件
公式テンプレートをほぼそのまま使い、自作のコードやプラグインが少ないサイトでは、Aでも更新の負担は大きくなりません。更新作業に使える時間が限られる場合は、Bで時期を決めてまとめる方法もあります。どの方法でも、更新前のバックアップとリリース記載の確認は共通です。
根拠にした公式ページ
- EmDashのアップデート(原文:https://docs.emdashcms.com/deployment/updating/)
- コアDBマイグレーション(原文:https://docs.emdashcms.com/deployment/core-migrations/)
- サイトのプラグイン更新(原文:https://docs.emdashcms.com/plugins/upgrading-sites/)
- Cloudflareへのデプロイ(原文:https://docs.emdashcms.com/deployment/cloudflare/)
- バックアップと復旧(原文:https://docs.emdashcms.com/guides/backups/)
- EmDashのリリース一覧(https://github.com/emdash-cms/emdash/releases)