注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundry オントロジーを基盤としたワークフローとアプリケーションは、組織のニーズが変化するにつれて進化するべきです。その一部では、オブジェクトタイプのスキーマを更新することで、他の場所で追加の変更が必要となるような進化(「破壊的な変更」)が発生するかもしれません。スキーマへの破壊的な変更の例としては、既存のプロパティのデータタイプを変更する、オブジェクトタイプのバックエンドデータソースを変更する、オブジェクトタイプの主キーを変更する、などがあります。破壊的なスキーマ変更の全リストについては下記を参照してください。
Object Storage V1(Phonograph)では、ユーザーインターフェースがこのようなスキーマ変更を制限し、特にオブジェクトタイプがユーザーからの編集を受けている場合には強く制限します。これは、OSv1ではこのようなユーザー編集を移行できないためであり、代わりに、破壊的な変更は既存のユーザー編集の損失を招くことになります。そのため、時間と労力をかけて複雑な手動介入が行える場合に限ります。
Object Storage V2はこのスキーマ変更の制限を取り除き、柔軟で反復的なワークフロービルディングを支援します。そのため、OSv2は、破壊的なスキーマ変更後に既存のユーザー編集に適用できる事前定義された移行のリストを持つスキーマ移行フレームワークを提供します。オントロジーマネージャーは破壊的なスキーマ変更を自動的に検出し、ユーザーに事前定義されたリストから移行オプションを選択するように誘導します。完全にサポートされている移行の全リストについては下記を参照してください。
このワークフローの例では、ユーザーが既存のユーザー編集を持つオブジェクトタイプから Year
プロパティを削除します。オントロジーマネージャーは自動的にこれを破壊的なスキーマ変更として識別し、移行が必要であるという警告を表示します。以下のように表示されます。
警告を表示するだけでなく、ユーザーがオントロジーに変更を保存したいときに、オントロジーマネージャーは Review edits インターフェースに Migrations タブを表示します。オントロジーマネージャーは、破壊的な変更のための移行をユーザーが定義するまで、ユーザーが変更を保存することをブロックします。これにより、他のワークフローが壊れるのを防ぎます。
ユーザーが Migrations タブに移動すると、オントロジーマネージャーは破壊的な変更のタイプに基づいて利用可能な移行オプションを表示します。以下に示すように表示されます。
オントロジーマネージャーでユーザーによってスキーマ変更が指定され保存されると、バックエンドでオブジェクトタイプの新しいスキーマバージョンが作成され、対応するreplacement Funnel pipelineがオブジェクトタイプのインデックスを更新するためにオーケストレーションされます。新しいオブジェクトタイプバージョンは、replacement pipelineが完了し、新しいバージョンが完全に オブジェクトデータベースによって hydratedであると宣言されるとすぐに、Object Set Service(OSS)およびオントロジーAPIの他の消費者からクエリ可能になります。
以下のオントロジーの変更は、破壊的なスキーマ変更と考えられています。
以下のオントロジーの変更は、破壊的なスキーマ変更とは見なされません。
以下は、現在Object Storage V2でサポートされているスキーマ移行の全リストです。
移行ごとに最大50の編集を適用できます。編集の数がこの限度を超える場合、移行はバッチで行わなければなりません。
現在のスキーマ移行フレームワークは、オブジェクトタイプの主キープロパティに移行指示を適用することをサポートしていません。主キー移行のサポートは将来追加される予定です。