開発環境の持ち方
このページで決めること:EmDashのサイトを、いくつの環境(作業場所)に分けて運用するか
決める前に知っておくこと
環境とは、同じサイトを別々に動かす場所のことです。一般的には、手元のパソコンで動かす「ローカル」、公開前の確認に使う「プレビュー」、訪問者が見る「本番」の3種類があります。EmDashでは、環境ごとにデータベースとファイル置き場(メディアストレージ)を持ちます。
Cloudflareで動かす場合、プレビュー環境はWranglerの名前付き環境(例:preview)として作ります。名前付き環境は、本番の設定からバインディング(D1やR2などのリソースへの接続設定)を引き継ぎません。そのため、プレビュー用のD1データベースとR2バケットを別に作り、使うバインディングをすべて書き直します。
EmDashは、本体のデータベース構造を更新する「コアマイグレーション」を持っています。既定の auto モードでは、デプロイしたサイトが最初のリクエストを受けたときに、未適用のコアマイグレーションを実行します。コアマイグレーションは前にしか進まず、取り消す手順がありません。
公式の推奨
プレビュー環境のバインディングを、本番のデータベースやバケットに向けてはいけません。プレビュー環境も最初のリクエストでコアマイグレーションを実行するため、本番のデータベースにつなぐと、プレビューでの確認作業が本番のデータベースを書き換えてしまいます。(公式「Cloudflareへのデプロイ」)
破壊的なスキーマ変更(フィールドの削除、コレクションの組み替え)は、本番のコピーを入れたプレビュー環境で先に試してから、本番に同じ変更を加える手順が示されています。(公式「運用中サイトのスキーマ変更」)
別の選択肢が合う条件
記事の更新だけが目的で、テンプレートのコードに手を入れないなら、Aでも運用できます。改修の頻度が低く、EmDashの更新を急がない場合は、Bで十分なこともあります。
根拠にした公式ページ
- Cloudflareへのデプロイ(原文:https://docs.emdashcms.com/deployment/cloudflare/)
- コアDBマイグレーション(原文:https://docs.emdashcms.com/deployment/core-migrations/)
- 運用中サイトのスキーマ変更(原文:https://docs.emdashcms.com/deployment/schema-evolution/)
- EmDashのアップデート(原文:https://docs.emdashcms.com/deployment/updating/)