web-dev-qa-db-ja.com

構成のインポートとモジュールの更新はどの順序で実行する必要がありますか?

モジュールのスキーマバージョンはKey-Valueストレージに格納されるため、各サイトに固有であり、構成管理を通じて同期されません。更新では構成にカプセル化されていない調整(データベースの更新など)が必要になる場合がありますが、構成に含まれる可能性のある他の変更(新しい構成値の追加など)があるためです。

  • 構成のインポートとデータベースの更新をどちらの順序で実行してもリスクはありますか?
  • これらの操作を実行するための優先順序は何ですか?
  • 更新フックは、すでにインポートされている可能性のある構成アイテムに対して特別な調整を行う必要がありますか?
  • 本番環境を完全に更新するために必要となる可能性のある他の操作はありますか?
10
gapple

構成をインポートする前に更新を実行する必要があります

コアに対する保留中の問題は 構成のインポートを許可する前に、コードとスキーマのバージョンが一致していることを確認してください


アップデート前の設定インポートの問題

  • 構成値に依存する更新フックは、インポート前の値で実行された場合とは異なる結果になる可能性があります。

  • すでに存在する構成エンティティを作成しようとすると、更新が失敗する可能性があります。

更新後の構成のインポートに関する懸念

  • 新しい構成エンティティを導入する更新が最初に実行されると、構成内のものとは異なるUUIDを持つ新しい構成アイテムが作成されます。ただし、設定がインポートされたら、エンティティを設定バージョンに置き換える必要があります。

    エンティティを置き換えると関連するコンテンツに影響する場合、ここで潜在的な問題が発生する可能性があります。たとえば、更新によってコンテンツが1つのフィールドから別のフィールドに移行される場合、構成のインポート時にフィールドが完全に置き換えられ、コンテンツが失われる可能性があります。この場合、ターゲット環境で更新を実行し、結果の構成をエクスポートするために、デプロイメントプロセスを調整する必要があります。

12
gapple