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

このページで決めること:EmDashのサイトを、いくつの環境(作業場所)に分けて運用するか

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

環境とは、同じサイトを別々に動かす場所のことです。一般的には、手元のパソコンで動かす「ローカル」、公開前の確認に使う「プレビュー」、訪問者が見る「本番」の3種類があります。EmDashでは、環境ごとにデータベースとファイル置き場(メディアストレージ)を持ちます。

Cloudflareで動かす場合、プレビュー環境はWranglerの名前付き環境(例:preview)として作ります。名前付き環境は、本番の設定からバインディング(D1やR2などのリソースへの接続設定)を引き継ぎません。そのため、プレビュー用のD1データベースとR2バケットを別に作り、使うバインディングをすべて書き直します。

EmDashは、本体のデータベース構造を更新する「コアマイグレーション」を持っています。既定の auto モードでは、デプロイしたサイトが最初のリクエストを受けたときに、未適用のコアマイグレーションを実行します。コアマイグレーションは前にしか進まず、取り消す手順がありません。

公式の推奨

プレビュー環境のバインディングを、本番のデータベースやバケットに向けてはいけません。プレビュー環境も最初のリクエストでコアマイグレーションを実行するため、本番のデータベースにつなぐと、プレビューでの確認作業が本番のデータベースを書き換えてしまいます。(公式「Cloudflareへのデプロイ」)

破壊的なスキーマ変更(フィールドの削除、コレクションの組み替え)は、本番のコピーを入れたプレビュー環境で先に試してから、本番に同じ変更を加える手順が示されています。(公式「運用中サイトのスキーマ変更」)

選択肢の比較

A. 本番のみ B. ローカル+本番 C. ローカル+プレビュー+本番
概要 公式テンプレートを本番に置き、管理画面で記事だけを更新する 手元で改修し、確認してから本番にデプロイする Bに加え、本番と同じ条件の確認環境を用意する
向いている場合 テンプレートの見た目のまま使い、コードを触らない 改修はするが、変更が小さく頻度も低い EmDash本体の更新を本番前に試したい。改修が多い
注意点 EmDashの更新を試す場所がなく、本番で直接更新することになる ローカルと本番では、データベースや実行環境の条件が異なる 管理するリソースが増える。プレビュー用の設定は本番から引き継がれないため、すべて設定し直す
費用と手間 最小 中(プレビュー用のD1・R2が追加で必要)
根拠にした公式ページ Cloudflareへのデプロイ Cloudflareへのデプロイ、EmDashのアップデート Cloudflareへのデプロイ(プレビューデプロイ)、運用中サイトのスキーマ変更

別の選択肢が合う条件

記事の更新だけが目的で、テンプレートのコードに手を入れないなら、Aでも運用できます。改修の頻度が低く、EmDashの更新を急がない場合は、Bで十分なこともあります。

根拠にした公式ページ