Salesforce CLIを整理してみた

Posted by

概要

本記事は、Salesforce CLIで使用可能なコマンドを整理したものとなります。
筆者が気になったコマンドついては、個別に実行してどのような結果となるかを試してみました。
ただし、これらのコマンドは毎リリースで仕様が更新されているので最新情報は下記のURLで確認してください。
https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference.htm
なお、本記事に記載の情報は、summer’19(Ver46)時点のものとなります。

コマンド整理

alias Commands

alias:listCLIのコマンドで使用できる別名をリスト表示
alias:setCLIのコマンドで使用できる別名を設定

sfdx force:alias:list
ローカルで使用しているユーザIDに対する別名をリストで確認することができます。
sfdx force:alias:set YourAlias=username@example.com
別名を設定することもできます。

apex Commands

apex:class:createApexクラスの作成
apex:executeApexクラスの実行
apex:log:get最後のデバックログを取得
apex:log:listデバックログIDのリストを表示
apex:log:tailターミナルでデバックログのテイルを有効化
apex:test:report特定のテストを実行した結果を表示
apex:test:runApexのテストを実行
apex:trigger:createApexトリガーの作成

sfdx force:apex:class:create -n sfdxCliApexTest -d ./classes/
クラス名とローカルのディレクトリを指定してApexクラスを作成します。

sfdx force:apex:execute -f ./classes/sfdxCliApexTest.clsローカルのApexクラスをファイルを実行することができます。

sfdx force:apex:log:list

auth Commands

auth:jwt:grantJWTフローで組織へ認証
auth:list認証済の接続情報をリストで表示
auth:logout認証済みの組織からログアウト
auth:sfdxurl:storeSFDXの認証URLを使用して組織へ認証
auth:web:loginブラウザのログイン画面経由で認証

sfdx force:auth:web:login -a <別名> -r <インスタンスURL>
通常のWEBのログイン画面でユーザID、パスワードで認証できます。

sfdx force:auth:list
ローカルでSalesforce組織に対して認証済の接続情報をリストで表示します。

config Commands

config:getデフォルトのスクラッチ組織/DebHub/インスタンスURLの設定を取得
config:listCLIのための設定変数をリストで表示
config:setCLIのためのLocalとGlobalの設定変数を更新

sfdx force:config:list
ローカルでCLIのための設定変数をリストで表示します。

data Commands

data:bulk:deleteCSVファイルのレコードリストをバッチで削除
data:bulk:statusBulkAPIのJob/バッチステータスをポーリング
data:bulk:upsertBulkAPIによるUPSERTのJobかバッチを作成
data:record:createレコードをINSERT
data:record:delete単一レコードをDELETE
data:record:get単一レコードを表示
data:record:update単一レコードをUPDATE
data:soql:querySOQLを実行
data:tree:exportsObjectとツリーフォーマット(json)で組織からデータをエクスポート
data:tree:importsObjectとツリーフォーマット(json)で組織へデータをインポート

sfdx force:data:record:update -s Account -i 0017F00000ezMN3QAM -v “Name=GenePoint-Update”
-sでオブジェクト名、-iでID、-vで更新カラムと値を引数で渡すことでUPDATEできる

sfdx force:data:record:update -s Account -w “Name=’GenePoint'” -v “Name=’GenePoint-Update'”
-wでWHERE句のように条件を指定することもできる

sfdx force:data:soql:query -q “SELECT Id, Name FROM Account”
SOQLを実行して結果を表示する

sfdx force:data:tree:export -q “SELECT Id, Name FROM Account”
SOQLを実行してjson形式でデータをエクスポートする

doc Commands

doc:commands:displayコマンドのヘルプを表示
doc:commands:listコマンドのリスト表示

sfdx force:doc:commands:listforce
名前空間のCLIコマンドを全て一覧で表示

lightning Commands

lightning:app:createLightningアプリケーションを作成
lightning:component:createAuraコンポーネントかLWCの枠を作成
lightning:event:createLightningイベントの枠を作成
lightning:interface:createLightningインターフェースの枠を作成
lightning:lintAuraコンポーネントコードに対して静的解析、または「lint」ツールを実行
lightning:test:createLightningテストを作成
lightning:test:installLightning Testing Serviceに非管理パッケージを組織にインストール
lightning:test:runAuraコンポーネントのテストを実行

limits Commands

limits:api:displayAPIコールやイベントの制限について最大数と残数を表示

sfdx force:limits:api:display

mdapi Commands

mdapi:convertメタデータAPIで取得したメタデータをDXプロジェクトで利用できるソース形式に変換
mdapi:deploy作成、更新したコンポーネントを組織にデプロイ
mdapi:deploy:cancel非同期のデプロイをキャンセル
mdapi:deploy:report非同期のメタデータのデプロイ状況をチェック
mdapi:describemetadata組織で有効なメタデータタイプを表示
mdapi:listmetadata特定のメタデータタイプのプロパティを表示
mdapi:retrieve対象の組織からメタデータをxmlファイルのZipを取得
mdapi:retrieve:report非同期のメタデータの取得状況をチェック

sfdx force:mdapi:describemetadata

sfdx force:mdapi:listmetadata -m CustomObject

org Commands

org:clone (Beta)設定ファイルかkey-valueのペアで指定された値を使ってSandbox組織をクローン
org:create設定ファイルかkey-valueのペアで指定された値を使ってSandbox組織かスクラッチ組織を作成
org:deleteスクラッチ組織を削除
org:display対象の組織の説明を表示
org:listCLIで作成したもしくは、認証した組織をリスト表示
org:openブラウザで組織を表示
org:shape:create (Pilot)スクラッチ組織作成のため組織のエディション、特徴、ライセンスのスナップショットを作成
org:shape:delete (Pilot)CLIを使用して作成した組織の型を削除
org:shape:list (Pilot)CLIを使用して作成した組織の型を表示
org:snapshot:create (Pilot)スクラッチ組織のスナップショットを作成
org:snapshot:delete (Pilot)スクラッチ組織のスナップショットを削除
org:snapshot:get (Pilot)スクラッチ組織の詳細を取得
org:snapshot:list (Pilot)DevHubのためのスクラッチ組織のスナップショットをリスト表示
org:status (Beta)Sandbox組織の作成状況をレポート表示

package Commands

package:createパッケージを作成
package:hammertest:list (Pilot)実行中もしくは完了したISV Hammerテストの状況をリスト表示
package:hammertest:report (Pilot)実行中もしくは完了したISV Hammerテストの状況を返す
package:hammertest:run (Pilot)特定のパッケージバージョンか登録者組織のためのISV Hammerテストを実行
package:install対象組織にパッケージをインストール
package:install:reportパッケージインストールのリクエストの状況を取得
package:installed:list対象組織にインストールされた全てのパッケージをリスト表示
package:listDevHub組織の全てのパッケージをリスト表示
package:uninstall対象組織に第2世代で作成されたパッケージをアンインストール
package:uninstall:reportパッケージのアンインストールリクエストの状況を取得
package:updateパッケージについて詳細を更新
package:version:createDevHub組織でパッケージバージョンを作成
package:version:create:listDevHub組織で第2世代でのパッケージを作成するための全てのリクエストをリスト表示
package:version:create:reportDevHub組織でパッケージバージョンを作成するためのリクエストの詳細を取得
package:version:listDevHub組織での全てのパッケージバージョンをリスト表示
package:version:promoteパッケージバージョンをリリース済ステータスに昇格
package:version:reportDevHub組織でのパッケージバージョンの詳細を表示
package:version:updateDevHub組織で第2世代でのパッケージバージョンを更新

package1 Commands

package1:version:createリリース済組織に第一世代パッケージパージョンを作成
package1:version:create:getパッケージバージョンの作成リクエストの状況を取得
package1:version:display個々の第一世代パッケージパージョンについて詳細情報を表示
package1:version:list組織での特定のパッケージか全ての第一世代パッケージのパージョンをリスト表示

project Commands

project:create特定のディレクトリか現在のディレクトリにDXプロジェクトを作成
project:upgradeプロジェクトの設定や定義ファイルを最新フォーマットへ更新

schema Commands

schema:sobject:describe標準かカスタムオブジェクトのためのメタデータを表示
schema:sobject:list特定のsObjectカテゴリの全てのオブジェクトをリスト表示

sfdx force:schema:sobject:list -c all

source Commands

source:convertソースフォーマットファイルをメタデータAPIでデプロイできる形式に変換
source:deleteSandboxのような非スクラッチ組織とローカルプロジェクトからソースファイルを削除
source:deploy組織へソースフォーマットでメタデータをデプロイ
source:openLightningアプリケーションビルダーで特定のLightningページを表示
source:pullスクラッチ組織からローカルプロジェクトへ同期のために変更したソースを取得
source:pushローカルプロジェクトからスクラッチ組織へ同期のために変更したソースをアップ
source:retrieve組織からローカルのDXプロジェクトへソース形式でメタデータを取得
source:status、ローカルで加えられたか、スクラッチ組織か両方かの変更をリスト表示

user Commands

user:createスクラッチ組織のためのユーザを作成
user:displayCLIで作成か認証されたスクラッチ組織のユーザについての情報を表示
user:listCLIで作成か認証されたスクラッチ組織の全てのユーザをリスト表示
user:password:generateスクラッチ組織のユーザのためのパスワードを生成
user:permset:assign組織のユーザへ権限セットを割り当て

visualforce Commands

visualforce:component:createVisualforceコンポーネントを作成
visualforce:page:createVisualforceページを作成

まとめ

最後の方は、コマンドリファレンスを翻訳しただけになってしまいましたが、現時点での全てのコマンドを確認できて、知らなかったのも結構あったのでよかったと思います。次は、もう少し実践的な用途のカットでも整理したいと思います。