運用中にフォームを変更する

最終更新: 2026年7月6日

洋服店ショッピングモール「ぬくもりクローゼット」の「商品」Content Type で商品を300件登録して運用しているとしましょう。夏のセールを前に「割引価格」の欄を新しく入れたいと思います。逆に、初期に作っておいたものの、今では誰も使っていない「在庫メモ」の欄は外したいと思います。ところで、フォームを今直すと、すでに蓄積されている商品300件はどうなるのでしょうか。

このページでは、コンテンツがすでに蓄積された Content TypeField を追加・修正・削除するとき、既存の Content に何が起きるのか、そして安全に変更する手順を扱います。Content TypeField が何で、最初にどう作るのかは Content モデリングで扱います。

始める前に、一つ知っておいてください。フォームの変更は、保存した瞬間からすぐに適用されます。 Content とは異なり、公開の段階を別に経ることはありません。そのため、運用中のフォームは変更する前に「変更すると何が起きるのか」を先に知っておくことが重要です。

変更内容によって既存の商品に起きること

まず全体像です。フォームで何を変更するかによって、すでに蓄積された商品300件に起きることが異なります。

変更する内容既存の商品300件に起きること
Field の追加何も壊れません。新しい欄は空のまま残ります
Field 名(画面に表示される名前)の変更値はそのまま維持されます
Field を必須に変更、値のルール(検証)の追加今すぐは何も起きません。代わりに、その商品を次に保存または公開する瞬間から新しいルールの検査にかかります
Field の削除その欄に保存されていた値が、すべての商品から一緒に消えます。元に戻せません
Content Type の削除そのフォームで作成した Content が一つでも残っていると、削除自体ができません

この表では2行だけ覚えておけば十分です。追加は安全で、削除は元に戻せません。 そして必須・検証などのルールは、今ある商品に遡って適用されることはなく、次に手を加えた瞬間から適用されます。以下でこの3つを順番に扱います。

間違えやすい境界も一つ引いておきます。Content Type を直すことは、空の書式の印刷版を直す作業であり、Content を直すことは、すでに書き上げた1枚の紙を直す作業です。紙(Content)を直した場合は再公開しないと訪問者に届きませんが、印刷版(Content Type)は保存すると同時に新しいフォームが適用されます。

「割引価格」Field を追加する

新しい Field を追加することは安全な変更です。既存の商品はそのまま維持され、新しくできた欄だけが空のまま残ります。たとえば「割引価格」Field を追加した直後の商品一覧は、次のような姿になります。

商品名価格割引価格
ステンレスタンブラー500ml18,000(空欄)
リネンシャツ オートミール42,000(空欄)
コーデュロイパンツ ブラウン39,000(空欄)

「商品」Content Type に「割引価格」Field を追加する手順は次のとおりです。

  1. 左のメニューで Content Type を押してください。
  2. 一覧で「商品」を押してください。Content Type の編集画面がすぐに開きます。
  3. 新しいFieldを作成を押してください。
  4. Field の種類を選択する画面で Integer カードを選んでください。割引価格は小数点のない数値だからです。
  5. 次へボタンを押してください。
  6. Field 名の欄に 割引価格 を入力してください。
  7. Field ID の欄に discountPrice を入力してください。
  8. 保存ボタンを押してください。
  9. Content Type の編集画面右上の 保存ボタンを押してください。保存する変更がないときはこのボタンは無効な状態で、Field を追加した後に押すと実際に反映されます。

商品 Content Type の編集画面。商品名・価格・詳細説明・メイン写真・ブランド・販売状態・在庫メモまで7つの Field が表示され、一番下に新しい Field を追加する「+」の枠があります

割引価格 Field の追加を終えた商品 Content Type の編集画面。Field 一覧の末尾に割引価格(Integer)が追加されて Field が8つになり、右上の保存ボタンが有効な状態に変わりました

保存すると、その瞬間から新しいフォームが適用されます。既存の商品「ステンレスタンブラー500ml」を開くと、割引価格の欄が空のまま表示され、必要な商品から値を埋めていけば大丈夫です。

商品 Content の詳細画面の一部。在庫メモには既存の値「倉庫B 棚3段目」が残っており、新しく追加された割引価格の欄は「空」と表示されます

必須の Field は二段階に分けて追加する

「割引価格は今後すべての商品に必ず入っていなければならない」と決めたなら、Field必須Field というルールをオンにしたくなります。ここで、このページで最も重要な動作原理が出てきます。

必須ルールは、すでに保存・公開された商品に遡って適用されることはありません。ルールをオンにした瞬間に既存の商品300件が一斉にエラーになることはなく、公開中の商品はそのまま訪問者に届きます。代わりに、その商品を次に保存または公開する瞬間に新しいルールの検査にかかります。つまり割引価格が空の商品は、空欄を埋めるまで保存も公開もできません。

運用では、これは次のように現れます。商品300件がある状態で割引価格をいきなり必須で追加すると、その後どの商品を開いても、価格の誤字を一つ直すだけのつもりでも、割引価格から埋めないと保存できません。急ぎの修正が、関係のない欄のせいで止まってしまうわけです。そのため必須の Field は、二段階に分けて追加するのが安全です。

  1. まず、必須ではない状態で Field を追加してください。手順は上の割引価格の追加と同じです。
  2. 既存の商品の割引価格の値を埋めてください。対象が多い場合は、目的のコンテンツを探すのフィルターと列設定で割引価格の列を一覧に表示しておくと、まだ空の商品を一目で見分けられます。
  3. 値をすべて埋めた後で、そのとき必須ルールをオンにしてください。

3段階目で必須ルールをオンにする手順は次のとおりです。

  1. Content Type の編集画面で「割引価格」Field の歯車アイコンを押してください。「Fieldを設定」というウィンドウが開きます。
  2. バリデーションタブを押してください。
  3. 必須Fieldをオンにしてください。
  4. 保存ボタンを押してください。
  5. Content Type の編集画面右上の 保存ボタンを押して反映してください。

割引価格 Field の詳細設定ウィンドウのバリデーションタブ。必須Field のチェックボックスがオンになっており、Field の重複を許可しない・数値の範囲・許可する値のリストのオプションが一緒に表示されます

すでにある Field を必須に変更するときも、ルールは同じです。オンにする前に、その Field の値が空の商品から埋めて、すべて埋めた後にオンにしてください。

値のルール(検証)を追加したり厳しくしたりするのも、必須とまったく同じように動作します。たとえば割引価格に値の範囲条件を新しく設定しても、既存の商品に遡ることはなく、その商品を次に保存または公開するときから検査にかかります。条件に反する値を持つ商品がないかを先に確認してからルールを設定する手順は、必須の Field と同じです。設定できる条件の種類は、Content モデリングで扱います。

割引価格を埋めないまま保存を試みると、割引価格の Field の下に赤い文字で このFieldは必須ですという案内が表示され、同時に画面右側に 保存できませんでしたというトーストと、「エディタータブに無効なFieldがあります。」という案内が一緒に表示されます。値を埋めるまでは保存も公開もできません。

割引価格 Field が空の状態で保存を試みたときの画面。割引価格の入力欄が赤い枠で表示され、その下に「このFieldは必須です」という案内が表示され、右側に「保存できませんでした」というトーストが表示されます

「在庫メモ」Field を外す:削除する前に確認すること

今度は、もう誰も使っていない「在庫メモ」Field を整理する番です。その前に、必ず知っておくべきことがあります。

Field を削除すると、その欄に保存されていた値も、すべての商品から一緒に消え、元に戻せません。 フォームから欄を一つ外すように見えますが、実際には商品300件に書かれていた在庫メモ300個が一緒に消える動作です。

そのため、削除する前に自分で確認する習慣が必要です。

  • その Field の値をまだ使っている場所がないかを確認してください。サイトの画面にその値が表示されていたり、一緒に働く同僚がその欄を参照していたりする場合は、削除してはいけません。列設定で在庫メモの列を一覧に表示してみると、どの商品に値が残っているかをざっと確認できます。
  • 確信が持てない場合は削除しないでください。代わりに、Field 名を「在庫メモ (使用しない)」に変えておいたり、そのまま残しておいたりする選択肢もあります。名前の変更は値に影響しないため(下記のセクションを参照)、後で本当に使わないことが確実になったときに削除しても遅くありません。

確認を終えたら、次の手順で削除します。

  1. Content Type の一覧で「商品」を開いてください。
  2. 「在庫メモ」Field の行の展開アイコンを押してください。
  3. 展開された領域で Fieldを削除を押してください。確認ウィンドウなしにすぐ Field 一覧から外れ、この状態で Content Type を保存すると実際に削除されます。
  4. Content Type の編集画面右上の 保存ボタンを押して削除を確定してください。

在庫メモ Field の行を展開した状態。左側に赤い「Fieldを削除」ボタンと、必須Field・ローカライズを有効化・FieldをContentタイトルに設定 のチェックボックスが並んで表示されます

保存すると、商品の画面から在庫メモの欄が消え、保存されていた値も一緒に消えます。

名前の変更は安全ですが Field ID は変更できません

Field には名前が2つあります。画面に表示される Field名(例: 割引価格)と、プログラムからこの欄を指すときに使う識別子である Field ID(例: discountPrice)です。

割引価格 Field の Field 詳細設定ウィンドウ、設定タブ。Field 名の欄は値を編集でき、Field ID の欄はグレーで無効化されていて「discountPrice」を変更できません

画面に表示される名前は、いつでも変更してかまいません。Field の行の歯車アイコンを押して「Fieldを設定」というウィンドウを開き、設定タブで Field 名の欄を直した後 保存を押し、Content Type の編集画面でも 保存を押すと反映されます。「在庫メモ」を「在庫メモ (使用しない)」に変えても、商品に保存された値はそのまま維持されます。

一方、Field ID は作成した後には変更できません。上の画面のとおり、Field ID の欄はグレーで無効化されていて編集できません。「Field ID を変更したい」場合に残る方法は、古い Field を削除して新しい Field を作ることだけですが、これは名前の変更ではなく、削除と追加です。古い欄の値は上記のセクションで見たとおり削除とともに消え、新しい欄は空のまま始まります。値が引き継がれないということです。そのため Field ID は、最初に作るときに慎重に決めておくのがよいでしょう。

フォーム自体を削除するにはコンテンツを先に空にする必要があります

Field 一つではなく、Content Type 自体を削除したいときもあります。このときは手順が決まっています。そのフォームで作成した Content が一つでも残っていると、Content Type を削除できません。 誤ってフォームを削除してコンテンツが行き場を失うことを防ぐためのルールです。

そのため、Content Type を削除するには、まずそのフォームで作成した Content をすべて削除する必要があります。Content を整理する方法(公開停止・アーカイブ・削除の違いと順序)は、公開を運用するで扱います。コンテンツの削除も元に戻せないため、フォームを削除すると決める前に、そのコンテンツが本当にもう必要ないかを先に確認してください。

次にすること

  • Content モデリング: Content TypeField が何か、そして最初に作る手順や Field の種類・検証を扱います。
  • 目的のコンテンツを探す: フィルターと列設定で、値を埋める商品や値が残っている商品を一度にまとめて絞り込む方法を扱います。
  • 公開を運用する: フォームの整理に先立って Content を公開停止・アーカイブ・削除する順序を扱います。