EmDash 1.5.0 アップデートの注意点と手順|当社サイトの実例(止めずに21分)

EmDash 1.5.0 アップデートの注意点と手順。当社サイトを 1.4.0 から 1.5.0 へ、止めずに21分でアップデートした実例 作業記録 2026年11月13日 EmDash 1.5.0 アップデートの注意点と手順 当社サイトの実例:止めずに 21分 リリースノートの確認から、本番の再確認まで AI右腕|実務AI設計室 前 1.4.0 後 1.5.0

EmDash 1.5.0 が、2026年11月12日(日本時間)に公開されました。データベースの構造を変える処理(マイグレーション)が入っていて、リリースノートには、プラグインの使い方によってはメンテナンス時間(サイトを止める時間)や、書き込みの停止が必要だと書かれています。アップデートして大丈夫か、どう進めればよいのか、迷っている方もいると思います。

この記事では、このサイト(当社のホームページ。EmDash で運用)を 1.4.0 から 1.5.0 へアップデートしたときの注意点と手順を、実際の時刻つきでお見せします。今回は、サイトを止めずに切り替え、依頼を受けてから完了まで21分でした。制作会社・エンジニアの方向けのコマンドは、記事の最後にまとめています。

この記事のポイント

  1. EmDash 1.5.0 には、マイグレーションが6つ入っています。リリースノートでは、プラグインの使い方によって、書き込みの停止やメンテナンス時間が必要とされています。
  2. このサイトは、当てはまる条件のデータが0件だったため、サイトを止めずにアップデートしました。当てはまるサイトでは、この記事の手順をそのまま使わないでください。
  3. 本番(お客様が見ているサイト)に出す前に、お客様には表示しない状態の新バージョンで、アップデート前とページを比べました。720件中718件が一致し、違いはアクセスのたびに変わる値の2件だけでした。
  4. データを戻せる時点(復元ポイント)と、ひとつ前のバージョンを控えてから切り替えました。切り替えは1.4秒、依頼から完了まで21分でした。

EmDash 1.5.0 で変わったことと、アップデート前に確かめること

このサイトは、2026年11月10日に WordPress から EmDash(エムダッシュ)へ移行しました。EmDash は、Astro(Web フレームワーク)をもとにした CMS(ホームページの内容を管理・表示するシステム)で、当社は Cloudflare の Workers(プログラムを動かす場所)と D1(データベース)で動かしています。新しいバージョンは続けて公開されていて、2026年10月2日から11月12日までの約6週間では6回でした。

主な変更点

  • 安全面の修正:WordPress の書き出しファイル(WXR)から取り込むと、パスワードで保護していた投稿が誰でも読める状態で公開されてしまう不具合が直りました。1.5.0 より前に WXR で取り込んだ方と、EmDash Exporter で取り込んだ方は、非公開にしたい記事が公開されていないかを確かめるよう、リリースノートに書かれています。
  • 共同編集:複数の人が同じ記事を同時に編集できる機能(初期設定ではオフ)
  • リビジョン:自動保存が、手動で保存したリビジョンを消さないように直り、誰が編集したかも表示されるように
  • ステージングモード:新しく作るサイトは、公開するまで検索エンジンに載らない設定(noindex)で始まる
  • メール送信:設定画面から SMTP を選べるように
  • 画像:AVIF・WebP での出力を指定できるように

このほか、表示の速さの改善や、リダイレクト・サイトマップ・検索まわりの不具合の修正が多数入っています。

アップデート前に確かめること(リリースノートの注意事項)

  1. プラグインの KV(設定などの保存場所)の移し替え:少しずつ切り替える方法(ローリング)では入れられず、この更新では自動のマイグレーションに頼らないよう書かれています。データベースのバックアップを取り、書き込む処理を止め、emdash とサンドボックスのランナーを一緒にアップグレードして起動せずにビルドし、マイグレーションと KV の食い違いの解決を行ってからサイトを起動する手順です。
  2. マイグレーション 095:プラグインが一意インデックス(重複を許さない設定)を使っているサイトは、メンテナンス時間が必要です。Workers では、メンテナンス用のページに切り替えてから実行する手順が示されています。
  3. マイグレーションのあとは、それより前のバージョンの EmDash では、サイト転送(エクスポート・インポート)ができなくなります。
  4. emdash と @emdash-cms/cloudflare のバージョンがそろっていないと、npm install が ERESOLVE というエラーで止まります。
  5. astro.config.mjs の emdash() の設定に型の誤りがあると、ビルドが止まります。

このサイトでの判断

1つ目と2つ目について、このサイトで使っているプラグインと、データベースの中身を確かめました。使っているプラグインは EmDash 公式の Audit Log だけで、KV も一意インデックスも使っていません。データベースでも、KV の移し替えの対象と 095 の対象を数え、どちらも0件でした。

そのため、リリースノートの手順(書き込みやサイトを止めてから実行)ではなく、今のバージョンを動かしたまま、新しいバージョンへの最初のアクセスでマイグレーションが自動で実行される形で進めました。これは、対象が0件だったこのサイトでの判断です。KV や一意インデックスを使うプラグインがあるサイトでは、リリースノートの手順に従ってください。

3つ目は、前のバージョンに戻すことになった場合の注意として控えました(表示は、マイグレーションのあとも 1.4.0 で動くことを確かめています)。4つ目は実際に起きたので、最後の章に対処を書いています。5つ目は、ビルドがエラーなく通ったことで確かめました。

アップデートの5つの手順

図1 アップデートの5つの手順

  1. リリースノートを読む1
    リリースノートを読む変更点と注意事項を読み、このサイトに当てはまるかを確かめる
  2. 復元ポイントを控える2
    復元ポイントを控えるデータベースを戻せる時点(D1 の Time Travel)と、ひとつ前のバージョンを控える
  3. トラフィック0%で比べる=3
    トラフィック0%で比べるお客様には表示しない状態の新バージョンで、アップデート前とページを比べる
  4. 本番を切り替える4
    本番を切り替える新バージョンのトラフィックを100%にする
  5. 本番で再確認する5
    本番で再確認するもう一度ページを比べ、問題があれば前のバージョンに戻す
今回は、確認用の新バージョンも本番と同じデータベースを使うため、復元ポイント(2)を、新バージョンに初めてアクセスする前に控えました。

1. リリースノートを読み、このサイトに当てはまるかを確かめる

新しいバージョンで何が変わったかだけでなく、アップデート時の注意事項を読みます。今回は上のとおり、KV の移し替えと 095 の対象がこのサイトでは0件であることを確かめました。また、マイグレーションのあとも 1.4.0 がそのまま動くこと(=前のバージョンに戻しても表示が止まらないこと)を確かめてから進めました。

2. 復元ポイント(D1 Time Travel)を控える

図2 復元ポイント(D1 Time Travel)

データベースの時間の流れに、アップデート直前の復元ポイントを置き、問題があればその時点に戻せるようにする図 時間 アップデート直前の復元ポイント(8:18) ここに戻せる アップデート 問題があれば戻す 1分単位で 戻せる時点がある
このサイトのデータは、Cloudflare の D1(データベース)にあります。D1 の Time Travel を使うと、過去の時点に1分単位でデータを戻せます。

アップデート直前(8時18分)の時点を表すブックマークを控えました。Time Travel で戻せるのは、Workers の有料プランで過去30日、無料プランで過去7日です。

ただし、データを戻すと、その時点よりあとに追加した記事や設定の変更も消えます。そのため、データを戻すのは最後の手段です。先にプログラムだけを前のバージョンに戻せるよう、ひとつ前のバージョンの ID も控えました。

3. 新バージョンをトラフィック0%でデプロイし、アップデート前と比べる

ご注意:KV や一意インデックスを使うプラグインがあるサイトでは、この手順3はそのまま使えません。トラフィック0%でも、新バージョンへの最初のアクセスで、本番のデータベースにマイグレーションが実行されるためです。リリースノートの手順に従ってください。

図3 トラフィック0%で事前に確かめる構成

お客様には今のバージョンが表示されたまま、確認用ヘッダーを付けたアクセスにだけ新バージョンが応答する仕組み お客様 いつもどおり 今のバージョン(1.4.0) トラフィック 100% 確認する側 確認用ヘッダー付き 新バージョン(1.5.0) トラフィック 0% データ ベース (D1)
Cloudflare Workers の段階的デプロイ(Gradual deployments)を使い、新バージョンをデプロイ(サーバーに置くこと)したうえで、トラフィック(アクセス)の割合を0%にしました。お客様には今のバージョンが表示されたままで、確認用のヘッダーを付けたアクセスにだけ新バージョンが応答します。

この状態で、固定ページ・記事・旧URLからのリダイレクトなど 316 のURLを、パソコンとスマートフォン(一部は Googlebot の User-Agent も)で取得し、合わせて720件を、アップデート前に取得しておいた本番のページ(比べる基準)と比べました。キャッシュを通さずに取得し、表示のたびに変わる値(フォームの確認用の番号など)はそろえてから、1文字ずつ比べています。

結果は、720件中 718 件が一致しました。違った2件は、Cloudflare が遮断している /wp-config.php へのアクセスで、そろえる対象に入れていなかった Ray ID(アクセスのたびに変わる番号)とアクセス元の IP アドレスが違うだけでした。

新バージョンに初めてアクセスしたとき、マイグレーション6つが自動で実行されました(約4秒)。このとき、最初の1回だけ応答に51秒かかりました。本番でいきなり切り替えていたら、そのときにアクセスした方を待たせていたかもしれません。トラフィック0%の段階で先に済ませたので、その間もお客様には今のバージョンが表示されていました。

4. 本番を新バージョンに切り替える

比べた結果に問題がないことを確かめてから、新バージョンのトラフィックを100%に切り替えました。切り替えにかかったのは1.4秒で、メンテナンス時間は取っていません。今回はメンテナンス時間の要らないアップデートだったため、朝8時台に切り替えました。メンテナンス時間が要るときは、アクセスの少ない時間帯を選びます。

5. 本番で再確認し、問題があれば戻す

切り替えたあと、本番の720件をもう一度取得し、確認したときと同じであることを確かめました(違いは、上と同じ2件だけ)。管理画面の表示も「EmDash v1.5.0」になり、記事・固定ページの一覧が開けることも確かめました。

もし問題があれば、ひとつ前のバージョンの ID を指定して、手順4と同じ操作で前のバージョンに戻します。それでも直らないときだけ、手順2の復元ポイントでデータを戻します。今回は、どちらも使いませんでした。

タイムライン:実際にかかった時間(21分)

2026年11月13日(金)の朝の記録です(日本時間)。いくつかの作業は並行して進めています。

図4 8時3分から8時25分までの流れ

2026年11月13日の朝、EmDash 1.5.0 へのアップデートにかかった時間の流れ。8時3分に開始し、8時25分に完了 8:008:058:108:158:208:258:30 開始 8:03 完了 8:25 ① リリースノートと今のバージョンを確認マイグレーションの中身を確認(並行)対象0件作業環境の準備・ビルド画像 22,125 ファイル本番のページを取得(比べる基準)720件② 復元ポイント8:18③ トラフィック0%で比較718/720 一致④ 切り替え1.4秒⑤ 本番で再確認完了
8:03アップデートの依頼を受ける
8:04〜8:12① リリースノートを読み、今のバージョン(1.4.0)を確かめる
8:11〜8:18作業環境を準備する。ソースコードのバックアップを展開し、画像 22,125 ファイルを本番から取得して1つずつ照合。パッケージを 1.5.0 にしてビルド(36秒)し、画像以外の静的ファイル 123 本が本番と同じかを照合
8:12〜8:15本番のページ720件を取得する(あとで比べる基準)
8:12〜8:20マイグレーション6つ(092〜097)の中身を読み、このサイトのデータに当てはまるかを確かめる(KV の移し替えと 095 の対象は0件)
8:18② 復元ポイント(Time Travel のブックマーク)を控える
8:19③ 新バージョンをトラフィック0%でデプロイする
8:20新バージョンに初めてアクセス。マイグレーション6つが自動で実行(約4秒。この1回だけ応答に51秒)
8:21〜8:23新バージョンで720件を取得し、基準と比べる → 718件が一致
8:23④ 本番を新バージョンに切り替える(1.4秒)
8:23〜8:25⑤ 本番の720件を取得し直し、確認したときと同じことを確かめる。完了
合計21分(8:03:59〜8:25:03)
② 復元ポイントと ④ 切り替えは数秒の操作のため、図では短い棒になっています。

21分は、いつも同じではありません

今回は、マイグレーションの対象になるデータがなく、メンテナンス時間の要らないアップデートでした。また、21分で終わったのは、移行のときに用意しておいたソースコードのバックアップや、デプロイと確認のためのスクリプトをそのまま使えたためでもあります。初めて行う場合や、サイトの規模・プラグインの数・アップデートの中身によって、かかる時間は変わります。21分は、このサイトでの今回の実例です。

また、アップデートには、あとから前のバージョンに戻しにくくなる変更が入っていることがあります(1.5.0 では、マイグレーションのあとは古いバージョンでサイト転送ができなくなる、など)。そのため、急いで切り替えるよりも、リリースノートを読み、トラフィック0%で比べ、復元ポイントを控えてから進めることを大切にしています。

ホームページの保守で行う3つの作業

当社の「最低限の保守」は、次の3つです。この記事は、①の実例です。料金と範囲は、ホームページ制作のページの「メンテナンス契約」に書いています。

図5 最低限の保守で行う3つの作業

① CMS のアップデートCMS(WordPress・EmDash など)の新しいバージョンが出たときに、確かめてからアップデートする作業です(対象の範囲は、ご契約の前にお示しします)。
② バックアップ何かあったときに戻せるように、データのバックアップを残します。
③ 軽い文字の修正電話番号や営業時間など、短い文の修正です。
私たちがアップデートする範囲、バックアップの対象・回数・保存期間、元に戻す作業と文字の修正の範囲は、ご契約の前にお示しします。

WordPress をお使いの方へ

WordPress のアップデートでも、考え方は同じです。

アップデートの前と後に

  • リリースノート(更新の案内)の注意事項を読む。
  • 先に戻せる状態を作る(バックアップが取れているか、そこから戻す手順が分かっているか)。バックアップから戻すと、取ったあとに届いたお問い合わせや更新は消えるため、アップデートはアクセスや注文の少ない時間帯に行う。
  • 本体・テーマ・プラグインを1つずつアップデートし、そのたびに表示を確かめる。
  • トップページだけでなく、記事が開けるか、お問い合わせフォームが実際に送れるかなど、よく使われる機能まで確かめる。

自分で触るのが不安なときや、管理画面の表示の意味が分からないときは、アップデートの前にご相談ください。

よくある質問

Q. EmDash 1.5.0 には、すぐアップデートしたほうがいいですか?

A. 安全面の修正(WordPress から取り込んだパスワード付きの投稿が公開されてしまう不具合の修正など)も入っているため、そのままにせず進めることをおすすめします。ただし、先にリリースノートの注意事項を読み、ご自身のサイトが当てはまるかを確かめてください。KV や一意インデックスを使うプラグインがあるサイトでは、書き込みの停止やメンテナンス時間が必要です。

Q. アップデートの間、サイトは止まりましたか?

A. 今回は止めていません。切り替えにかかったのは1.4秒でした。ただ、アップデートの中身やサイトの作りによっては、メンテナンス時間(サイトを止める時間)が必要なこともあります。

Q. WordPress の「新しいバージョンが利用可能です」は、すぐ押していいですか?

A. 押す前に、リリースノート(更新の案内)の注意事項を読み、戻せる状態を作ってください。WordPress は管理画面からアップデートできますが、先にバックアップがあることを確かめてください。なお、このサイト(EmDash)は管理画面のボタンではなく、パッケージを新しいバージョンにしてビルドし、デプロイし直す形でアップデートしました。

Q. 保守を頼めば、新しいバージョンが出るたびにアップデートしてもらえますか?

A. 私たちがアップデートする範囲と、元に戻す作業の範囲は、ご契約の前にお示しします。保守の料金と内容は、ホームページ制作のページの「メンテナンス契約」に書いています。

Q. EmDash に移行すれば、アップデートの作業はなくなりますか?

A. なくなりません。WordPress のプラグインの管理はなくなりますが、EmDash 本体(と、使っている EmDash のプラグイン)の新しいバージョンは出続けます。保守契約の中で、私たちが EmDash のアップデートを受け持ちます(アップデートする範囲や作業の範囲は、ご契約の前にお示しします)。

Q. 熊本以外のホームページでも、相談できますか?

A. はい。LINE とお問い合わせフォームで、県外からのご相談も承ります。

まとめ

  • EmDash 1.5.0 へのアップデートは、リリースノートの確認 → 復元ポイント → トラフィック0%で比べる → 本番の切り替え → 本番で再確認、の順で進めました。
  • 今回は、サイトを止めずに行い、依頼から完了まで21分でした。アップデート前と後で比べた720件では、アクセスのたびに変わる値を除いて、ページの中身は同じでした。
  • KV や一意インデックスを使うプラグインがあるサイトでは、書き込みの停止やメンテナンス時間が必要です。かかる時間も、アップデートの中身とサイトによって変わります。

保守で何をしているのかを、できるだけ見える形でお伝えしたいと考えています。アップデートの案内を見て迷ったら、気軽にご相談ください。

次に読むページ(目的別)

制作会社・エンジニアの方へ:確かめ方とコマンド

このサイトの構成は、EmDash 1.5.0(emdash・@emdash-cms/cloudflare)、Astro 7.4.7、@astrojs/cloudflare 14.4.6、wrangler 4.158.0、プラグインは @emdash-cms/plugin-audit-log 0.2.3 だけです。名前と ID は、ご自身の環境のものに置き換えてください。

1.5.0 の注意事項に当てはまるかの確かめ方

KV の移し替え(マイグレーション 092)の対象は、_plugin_storage テーブルで collection が __kv の行(id が settings: で始まるものを除く)です。095 の対象は、_plugin_indexes テーブルで index_name が uidx_plugin_ で始まる行です。このサイトはどちらも0件でした。あわせて、Audit Log の定義(emdash-plugin.jsonc とコード)にも、KV の利用と uniqueIndexes が無いことを確かめています。

どちらかが1件でもあれば、リリースノートの手順に従ってください(KV はバックアップを取り、書き込む処理を止め、emdash とサンドボックスのランナーを一緒にアップグレードして起動せずにビルドし、emdash migrate の実行と KV の食い違いの解決を行ってからサイトを起動。095 は、Workers ではメンテナンス用のページに切り替え、古い処理が終わるのを待ち、新しいビルドを check モードでデプロイしてからマイグレーションし、トラフィックを戻す)。

パッケージのアップデート(ERESOLVE の対処)

リリースノートの手順は、2つを同時にアップデートするコマンドです。

npm install emdash@latest @emdash-cms/cloudflare@latest

当社は package.json の2つを 1.5.0 に書き換えてから npm install したため ERESOLVE で止まり、package-lock.json から EmDash 関連(emdash・@emdash-cms/* など)の記録を外してから入れ直しました。ほかのパッケージのバージョンは変えていません。

npm install npm run build

画像とソースコードのバックアップ

画像(22,125 ファイル)はソースコードのバックアップ(zip)に入れていないため、ビルドのたびに本番から取得し、控えてある一覧(SHA-256)と1つずつ照合してから使っています。取得せずにデプロイすると、画像が表示されなくなるためです(画像そのものは、移行前のサーバーと、デプロイ済みの各バージョンにも残っています)。

復元ポイント(D1 Time Travel)

# 今の時点のブックマークを控える npx wrangler d1 time-travel info <データベース名> # 戻すとき(その時点のデータで上書きされ、以降の書き込みは消えるため最後の手段) npx wrangler d1 time-travel restore <データベース名> --bookmark=<ブックマーク>

トラフィック0%でのデプロイと切り替え

# 新バージョンをアップロード(まだトラフィックは流さない) npx wrangler versions upload # 今のバージョン100%・新バージョン0% npx wrangler versions deploy <今のID>@100% <新しいID>@0% # 新バージョンだけを見る確認用のヘッダー Cloudflare-Workers-Version-Overrides: <Worker名>="<新しいID>" # 本番を切り替える(戻すときは、前のIDを100%に) npx wrangler versions deploy <新しいID>@100%

確認用のヘッダーが効いて新バージョンが応答していることは、最初のアクセスで 1.5.0 にしかないマイグレーションが実行されたことで確かめました。

比較のしかた

316 URL × User-Agent(パソコン・スマートフォン・一部 Googlebot)=720件を、キャッシュを通さずに取得し、表示のたびに変わる値(フォームの確認用の番号など)をそろえてから差分を取りました。

書いた人:AI右腕(実務AI設計室・株式会社アンドクレア/熊本)。作業と確認:2026年11月13日。