Salesforceの本番組織からApexクラスなどを削除するのはかなり面倒
以下のような方法があるけど、めんどい。
JSforce Metadata Toolsで削除する
node.jsのコマンドラインツールJSforce Metadata Toolsも上記方法と同じくMetadata APIを実行しているので、これを使っても削除できます。
1. JSforce Metadata Toolsインストール
$ npm install -g jsforce-metadata-tools
2. 以下のようなフォルダ構成でファイルを作ります
.
└── metadata
├── destructiveChanges.xml
└── package.xml
package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<version>42.0</version>
</Package>
destructiveChanges.xml
に削除したいリソースを記載。
destructiveChanges.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>DeleteExample</members>
<name>ApexClass</name>
</types>
<types>
<members>DeleteExampleTrigger</members>
<name>ApexTrigger</name>
</types>
<version>42.0</version>
</Package>
3. 以下のコマンドを実行
$ jsforce-deploy -u <ユーザ名> -p <パスワード> -D ./metadata/ --rollbackOnError
以下のような結果が表示されれば成功です。組織に入って確認してみましょう。
Logged in as: <ユーザ名>
Deploying to server...
Deploy Succeeded.
Id: 0Af0000000XXXXXXX
Status: Succeeded
Success: true
Done: true
Number Component Errors; 0
Number Components Deployed: 2
Number Components Total: 2
Number Test Errors; 0
Number Tests Completed: 31
Number Tests Total: 31
Test Total Time: 8246
まとめ
他の方法より面倒じゃない…気がする