下書き_Salesforce CLI(sf)でよく使うコマンドまとめ


この記事は、Salesforce CLI(sf コマンド)を使い始めた人、または旧 sfdx から移行して「よく使うものだけ先に覚えたい」人向けのコマンドまとめです。

読み終わると、認証からソース取得・デプロイ・Apex テストまで、現場で頻出の操作をコマンドで実行できるようになります。

想定読者

  • VS Code + Salesforce Extension Pack で開発している人
  • Dev Hub / Scratch Org / Sandbox のいずれかを使う人
  • この記事では扱わないこと: パッケージバージョン作成の詳細、CI パイプライン全体設計、旧 sfdx の全互換対応表

結論

  • いま覚えるなら sf コマンド を優先する(sfdx は互換・移行期の位置づけ)
  • 日常の中心は「org 認証 → デフォルト org 設定 → retrieve / deploy → Apex テスト」
  • 迷ったら sf <topic> --help でサブコマンドを確認する

実際の環境

  • OS: Windows / WSL 想定
  • ツール: Salesforce CLI(sf
  • 前提: Node 経由または公式インストーラで CLI 導入済み
  • 検証日: 2026-08-10(CLI は更新が早いため、オプション名は --help で再確認推奨)

背景と課題

Salesforce 開発では、GUI だけで完結せず CLI でメタデータを出し入れする場面が増えます。
特に Git 管理しているプロジェクトでは、retrieve / deploy の精度がレビュー品質に直結します。

「毎回ドキュメントを検索する」状態を減らすため、用途別の短冊として残します。

よく使うコマンド

1. バージョンとヘルプ

# CLI バージョン
sf version

# トピック一覧のヒント
sf --help

# 例: project 系のヘルプ
sf project --help
sf project deploy start --help

2. 組織へのログイン(認証)

# Web ログインで org を認証(別名を付ける)
sf org login web --alias my-sandbox

# Dev Hub 向け
sf org login web --alias my-devhub --set-default-dev-hub

# 認証済み org 一覧
sf org list

# 詳細表示
sf org list --all

よく使うオプション:

  • --alias : あとから指定しやすい名前
  • --set-default : デフォルト org にする
  • --instance-url : My Domain など URL 指定が必要なとき

3. デフォルト org の設定と確認

# デフォルト org を設定
sf config set target-org=my-sandbox

# 設定確認
sf config get target-org
sf config list

# 省略時に使う org を明示したいとき(各コマンド)
sf org display --target-org my-sandbox

4. プロジェクト作成

# 標準の Salesforce DX プロジェクトを作成
sf project generate --name my-sf-app

cd my-sf-app

既存リポジトリを使う場合は、すでに sfdx-project.jsonforce-app があることが多いです。

5. ソースの取得(retrieve)

# マニフェスト(package.xml)から取得
sf project retrieve start --manifest manifest/package.xml

# メタデータ種別を指定して取得
sf project retrieve start --metadata ApexClass:AccountService

# 複数指定
sf project retrieve start --metadata ApexClass:AccountService,ApexTrigger:AccountTrigger

# ソースパス指定
sf project retrieve start --source-dir force-app/main/default/classes

# 対象 org を明示
sf project retrieve start --manifest manifest/package.xml --target-org my-sandbox

retrieve 後は必ず Git で差分確認します(別記事の Git まとめ参照)。

6. ソースのデプロイ(deploy)

# ソースディレクトリをデプロイ
sf project deploy start --source-dir force-app/main/default/classes

# マニフェストでデプロイ
sf project deploy start --manifest manifest/package.xml

# テストを指定してデプロイ(本番や厳格な環境向け)
sf project deploy start --source-dir force-app --test-level RunSpecifiedTests --tests AccountServiceTest

# チェックのみ(実デプロイしない)
sf project deploy start --source-dir force-app --dry-run

# 結果の確認(Job ID が出た場合)
sf project deploy report --job-id <ID>

テストレベル例:

  • NoTestRun
  • RunLocalTests
  • RunSpecifiedTests
  • RunAllTestsInOrg

7. Apex テスト実行

# ローカルテストを実行
sf apex run test --test-level RunLocalTests --result-format human --code-coverage

# 特定クラスだけ
sf apex run test --tests AccountServiceTest --result-format human --code-coverage

# 非同期 Job の結果待ち
sf apex run test --tests AccountServiceTest --wait 20

8. SOQL 実行

# 対話的というよりワンライナーで確認
sf data query --query "SELECT Id, Name FROM Account ORDER BY CreatedDate DESC LIMIT 10"

# ツールング SOQL
sf data query --query "SELECT Id, Name FROM ApexClass LIMIT 10" --use-tooling-api

9. Scratch Org(使う場合)

# Scratch Org 作成
sf org create scratch --definition-file config/project-scratch-def.json --alias scratch1 --duration-days 7 --set-default

# 開く
sf org open

# 削除
sf org delete scratch --target-org scratch1 --no-prompt

10. よく併用するショートカット

# デフォルト org をブラウザで開く
sf org open

# 特定 org を開く
sf org open --target-org my-sandbox

# ユーザ情報や org ID を確認
sf org display

実務での使い分け(例)

やりたいことコマンドの目安
初めて Sandbox に繋ぐsf org login web --alias ...
変更クラスだけ取るsf project retrieve start --metadata ApexClass:Name
開発中のデプロイsf project deploy start --source-dir ...
テスト確認sf apex run test --tests ...
データ確認sf data query --query "..."

ハマったこと

  • デフォルト org が別環境のまま deploy してしまった → 前に sf org list / sf config list
  • retrieve 範囲が広すぎて関係ないメタデータが増えた → package.xml または --metadata で絞る
  • RunSpecifiedTests なのにテストクラス名の指定漏れで失敗した
  • 旧ドキュメントの sfdx force:... をそのまま打って通らない → sf ... --help で置換

旧 sfdx からのヒント

完全な対応表ではありませんが、感覚としては次です。

  • sfdx force:auth:web:loginsf org login web
  • sfdx force:source:retrievesf project retrieve start
  • sfdx force:source:deploysf project deploy start
  • sfdx force:apex:test:runsf apex run test

まとめ

  • まず覚えるのは org login / org list / project retrieve start / project deploy start / apex run test
  • 破壊的操作の前に 対象 org を確認する
  • CLI は更新が速いので、細部は --help を正とする

関連: Git 側の日常コマンドは、別記事「Salesforce開発でよく使うGitコマンドまとめ」を参照。