本番環境のApexを削除する方法

By | October 30, 2020

概要

主要な方法として、VS Code経由・ワークベンチ経由の大きくを挙げることができる。

sfdx force:source:deletesfdx force:source:deploy -x package.xmlといったコマンドは現在サポートされていない。

VS Codeを利用したApexの削除

①削除対象のApex Class/Triggerのmeta.xmlファイルのstatusをDeletedに変更する

②Terminal上で更新したメタデータをデプロイするsfdxコマンドを実行する

sfdx force:source:deploy -m ApexClass:AccountTriggerHandler,ApexClass:AccountTriggerHandlerTest,ApexTrigger:AccountTrigger -l RunLocalTests

Workbenchを利用したApexの削除

①下記内容のpackage.xmlファイルを生成

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
   <version>50.0</version> 
</Package>

②下記内容のdestructiveChanges.xmlファイルを生成

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
  <types>
        <members>testApexTriggerTest1</members> //削除したいApexClass
        <members>testApexTriggerTest2</members>
        <name>ApexClass</name>
    </types>
    <types>
        <members>testApexTrigger1</members> //削除したいApexTrigger
        <members>testApexTrigger2</members>
        <name>ApexTrigger</name>
    </types>
    <version>50.0</version>
</Package>

③上記二ファイルをzipファイルに圧縮(※ファイル名はpackageにすること

手順2:ワークベンチ経由でのApex削除

①ワークベンチへのログイン

②migration>deployをクリック

③デプロイ設定→デブロイ

注意点

上手くいかない場合は①ファイル名②ファイルの内容をそれぞれ確認する。

また、zipファイルの名前がpackage.zipでない場合、削除は機能しない(※コンポーネント数0でデプロイに成功するという挙動となる)