EmDash 1.5.0 が、2026年11月12日(日本時間)に公開されました。データベースの構造を変える処理(マイグレーション)が入っていて、リリースノートには、プラグインの使い方によってはメンテナンス時間(サイトを止める時間)や、書き込みの停止が必要だと書かれています。アップデートして大丈夫か、どう進めればよいのか、迷っている方もいると思います。
この記事では、このサイト(当社のホームページ。EmDash で運用)を 1.4.0 から 1.5.0 へアップデートしたときの注意点と手順を、実際の時刻つきでお見せします。今回は、サイトを止めずに切り替え、依頼を受けてから完了まで21分でした。制作会社・エンジニアの方向けのコマンドは、記事の最後にまとめています。
この記事のポイント
- EmDash 1.5.0 には、マイグレーションが6つ入っています。リリースノートでは、プラグインの使い方によって、書き込みの停止やメンテナンス時間が必要とされています。
- このサイトは、当てはまる条件のデータが0件だったため、サイトを止めずにアップデートしました。当てはまるサイトでは、この記事の手順をそのまま使わないでください。
- 本番(お客様が見ているサイト)に出す前に、お客様には表示しない状態の新バージョンで、アップデート前とページを比べました。720件中718件が一致し、違いはアクセスのたびに変わる値の2件だけでした。
- データを戻せる時点(復元ポイント)と、ひとつ前のバージョンを控えてから切り替えました。切り替えは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 での出力を指定できるように
このほか、表示の速さの改善や、リダイレクト・サイトマップ・検索まわりの不具合の修正が多数入っています。
アップデート前に確かめること(リリースノートの注意事項)
- プラグインの KV(設定などの保存場所)の移し替え:少しずつ切り替える方法(ローリング)では入れられず、この更新では自動のマイグレーションに頼らないよう書かれています。データベースのバックアップを取り、書き込む処理を止め、emdash とサンドボックスのランナーを一緒にアップグレードして起動せずにビルドし、マイグレーションと KV の食い違いの解決を行ってからサイトを起動する手順です。
- マイグレーション 095:プラグインが一意インデックス(重複を許さない設定)を使っているサイトは、メンテナンス時間が必要です。Workers では、メンテナンス用のページに切り替えてから実行する手順が示されています。
- マイグレーションのあとは、それより前のバージョンの EmDash では、サイト転送(エクスポート・インポート)ができなくなります。
- emdash と @emdash-cms/cloudflare のバージョンがそろっていないと、npm install が ERESOLVE というエラーで止まります。
- 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リリースノートを読む変更点と注意事項を読み、このサイトに当てはまるかを確かめる
- 2復元ポイントを控えるデータベースを戻せる時点(D1 の Time Travel)と、ひとつ前のバージョンを控える
- 3トラフィック0%で比べるお客様には表示しない状態の新バージョンで、アップデート前とページを比べる
- 4本番を切り替える新バージョンのトラフィックを100%にする
- 5本番で再確認するもう一度ページを比べ、問題があれば前のバージョンに戻す
1. リリースノートを読み、このサイトに当てはまるかを確かめる
新しいバージョンで何が変わったかだけでなく、アップデート時の注意事項を読みます。今回は上のとおり、KV の移し替えと 095 の対象がこのサイトでは0件であることを確かめました。また、マイグレーションのあとも 1.4.0 がそのまま動くこと(=前のバージョンに戻しても表示が止まらないこと)を確かめてから進めました。
2. 復元ポイント(D1 Time Travel)を控える
図2 復元ポイント(D1 Time Travel)
アップデート直前(8時18分)の時点を表すブックマークを控えました。Time Travel で戻せるのは、Workers の有料プランで過去30日、無料プランで過去7日です。
ただし、データを戻すと、その時点よりあとに追加した記事や設定の変更も消えます。そのため、データを戻すのは最後の手段です。先にプログラムだけを前のバージョンに戻せるよう、ひとつ前のバージョンの ID も控えました。
3. 新バージョンをトラフィック0%でデプロイし、アップデート前と比べる
ご注意:KV や一意インデックスを使うプラグインがあるサイトでは、この手順3はそのまま使えません。トラフィック0%でも、新バージョンへの最初のアクセスで、本番のデータベースにマイグレーションが実行されるためです。リリースノートの手順に従ってください。
図3 トラフィック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分までの流れ
| 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 と 1.4.0 の応答時間を比較|Cloudflare Workers で実測
- Cloudflare の無料プランと Pro の違い・料金を知りたい方:Cloudflare 無料プランと Pro の違い・料金|切り替え前後の応答時間を比較
- WordPress から移りたい方:WordPress から EmDash・microCMS への引っ越しの目安
- サーバー会社から PHP のお知らせが来た方:PHP のお知らせが来たら|WordPress でやる5つのこと
- 今のホームページを第三者に見てほしい方:ホームページ診断(33,000円〈税込〉)
制作会社・エンジニアの方へ:確かめ方とコマンド
このサイトの構成は、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件を、キャッシュを通さずに取得し、表示のたびに変わる値(フォームの確認用の番号など)をそろえてから差分を取りました。
出典(2026年11月13日に確認)
書いた人:AI右腕(実務AI設計室・株式会社アンドクレア/熊本)。作業と確認:2026年11月13日。
