ロック解除済みパッケージのアップグレード
既存のパッケージにメタデータの変更を適用する必要がある場合、CLI を使用してパッケージバージョンを別のバージョンにアップグレードできます。
パッケージのアップグレードを実行すると、メタデータの変更は次のように影響します。
新しいパッケージバージョンにアップグレードするときは、組織とパッケージのすべての Apex の正常なコンパイルを要求する (--apex-compile all) のか、それともパッケージの Apex の正常なコンパイルのみを要求する (--apex-compile package) のかを選択します。
- 新しいバージョンに適用されたメタデータは、アップグレードの一部としてインストールされます。
- アップグレードされるコンポーネントの API 参照名が対象組織にすでにあるコンポーネントの API 参照名と同じ場合、コンポーネントはメタデータの変更で上書きされます。
- アップグレード内のコンポーネントが対象組織から削除されている場合、アップグレード中にコンポーネントが再作成されます。
- 新しいパッケージバージョンで削除されたメタデータは、アップグレードの一部として対象組織からも削除されます。削除されたメタデータとは、現在のパッケージバージョンのインストールに含まれず、対象組織にインストールされた前のパッケージバージョンに含まれるメタデータです。メタデータがアップグレード前に削除された場合、アップグレードは通常どおり行われます。廃止され、削除されていないメタデータの例を次にいくつか示します。
- カスタムオブジェクトおよび項目にユーザーが入力したデータは廃止されても、削除されません。システム管理者はこのデータを必要に応じてエクスポートできます。
- Apex クラスなどのオブジェクトは廃止されても、パッケージの一部である Lightning コンポーネント内で参照されている場合、削除されません。
- API バージョン 45.0 以降 (Salesforce CLI バージョン 45.0.9 以降) では、パッケージのアップグレード時に、削除されたメタデータの処理を指定できます。sf package install コマンドの -t | --upgrade-type パラメーターを使用して、次のいずれかの値を指定します。
- Delete では、連動関係のないカスタムオブジェクトとカスタム項目を除くすべての削除済みコンポーネントを削除するように指定します。
- DeprecateOnly では、削除されたすべてのコンポーネントを廃止としてマークすることを指定します。削除されたメタデータは、パッケージのアップグレード後に対象組織に存在しますが、UI にはパッケージから廃止されたとして表示されます。このオプションは、パッケージ間でメタデータを移行する場合に役立ちます。
- Mixed (デフォルト) では、削除された一部のコンポーネントを完全に削除し、その他のコンポーネントを廃止としてマークすることを指定します。コンポーネントの物理削除についての詳細は、「ロック解除済みパッケージの物理削除されるコンポーネント」を参照してください。