やりたいこと
Saleforceの本番環境から使わなくなったApex ClassやTriggerをSFDXコマンドで削除したい。
sfdx force:source:deployコマンドで削除する場合
準備
対象Apex Class、Apex Trigger のmeta-xmlファイルのstatusを Deleted
へ変更して保存する。
コマンド
sfdx force:source:deploy -p "force-app/main/default/classes/hogehoge.cls" -l RunLocalTests -u ユーザーID
オプションの説明
- p | --sourcepath SOURCEPATH
- u | targetUserName
- l | テストレベル指定オプション
説明
- 対象Class,Triggerはカンマで複数指定可能
- 本番でのdeployなのでテスト実施必須。オプションでテストレベル指定する。(-l RunLocalTests)
コマンド詳細
Salesforce CLI Command Reference
force:mdapi:deployコマンドで削除する場合(公式で調べた内容)
以下の公式を参考にして実施
組織からのコンポーネントの削除
手順
- 任意の場所にpackage.xml と destructiveChanges.xml の 2 ファイルを作成する。
- 上記 2 ファイルを zip ファイルに固める。
- sfdx force:mdapi:deploy を実行する。
あとがき
ClassやTrigger単体を削除するなら sfdx force:source:deploy で削除するほうがラクです。
force:mdapi:deployでの削除は、他のリソースもまとめて削除したい時に使うといいのかもしれません。
本番環境にある不要なApexを削除するのに調べた内容まとめました。
いわずもがなですが、本番環境のリソースを削除する際はくれぐれも注意して実施しましょう。