Salesforce의 Sandbox에서 소스 추적 (베타)을 시도했습니다.

5940 단어 Salesforce
이 기사에서는 Salesforce의 Sandbox에서 소스를 추적하는 방법을 소개합니다.
소스 추적은 스크래치 조직에서 개발할 때 조직에서의 변경과 로컬 프로젝트에서의 변경을 자동으로 검출하고, 개발 중에 실시한 모든 변경 작업을 누출 없이 테스트 환경이나 프로덕션 환경에 릴리스할 수 있다 그렇게하기위한 메커니즘입니다. 이 기능이 (현재는 베타이지만) 샌드박스에서도 사용할 수 있게 되었기 때문에, 변경 세트를 사용한 개발을 대신하는 새로운 개발 수법으로서 기대되고 있습니다.

Salesforce의 Sandbox에서 소스를 추적하는 기능은 이 기사 게시 시점은 베타 제공 중 기능입니다.

프로덕션 조직에서 샌드박스 소스 추적 사용



Sandbox에서 소스 추적을 수행하려면 Sandbox를 만드는 프로덕션 조직에서 設定 > 開発 > DevHub > Enable Source Tracking in Developer and Developer Pro Sandboxes (BETA)를 미리 활성화해야 합니다.



Sandbox 만들기



Sandbox는 設定 > 環境 > Sandbox에서 UI 기반으로 만들 수 있지만 이번에는 모처럼이므로 Salesforce CLI에서 Sandbox를 만드는 방법을 시도해 보겠습니다.

다음 명령은 프로덕션 조직에 로그인한 후 해당 조직에 대해 MyDevSbx라는 Developer Sandbox를 만듭니다. Sandbox를 만드는 데 몇 분이 걸리므로 -w 30를 지정하고 명령 실행 시간 제한을 30분으로 늘립니다(기본값은 6분). 또한 Sandbox에 로그인하기 위한 사용자 이름이 자동으로 생성되지만, 기억하기 어려우므로 -a 로 별명을 붙여 둡니다.
# Salesforce CLI で本番組織にログインし、MyOrg という別名をつけておく
$ sfdx force:auth:web:login -a MyOrg

# MyOrg に対し Sandbox を作成し、DevSbxForSourceTracking という別名をつけておく
$ sfdx force:org:create -u MyOrg -t sandbox sandboxName=MyDevSbx licenseType=Developer -a DevSbxForSourceTracking -w 30

> Name                         Value
> ───────────────────────────  ─────────────────────────────────
> Id                           0GRXXXXXXXXXXXXXXX
> SandboxName                  MyDevSbx
> Status                       完了
> CopyProgress                 100
> Description
> LicenseType                  DEVELOPER
> SandboxInfoId                0GQXXXXXXXXXXXXXXX
> SourceId
> SandboxOrg                   00DXXXXXXXXXXXX
> Created Date                 2020-12-26T06:30:48.000+0000
> ApexClassId
> Authorized Sandbox Username  [email protected]

# Sandbox が作成できたら、確認のためログインしてみる
$ sfdx force:org:open -u DevSbxForSourceTracking

헤더에 Sandbox: MyDevSbx가 표시되는 Sandbox 조직이 열리면 성공합니다.


Sandbox 소스 추적 시도



이제 방금 만든 Sandbox에서 소스 추적이 활성화되어 있는지 확인해 봅시다.
Sandbox에서 取引先(Account) 개체에 テスト(Test__c)라는 항목을 추가했습니다.


그런 다음 소스 추적의 상태를 확인합니다.
아래와 같이, Account.Test__cRemoteAdd 되었던 것이 검출되어 있으므로, 성공적으로 소스 추적할 수 있습니다.
$ sfdx force:source:status -u DevSbxForSourceTracking
> === Source Status
> STATE       FULL NAME        TYPE         PROJECT PATH
> ──────────  ───────────────  ───────────  ────────────
> Remote Add  Account.Test__c  CustomField

마지막으로 이 변경 내용을 소스 형식의 메타데이터로 로컬 프로젝트로 가져옵니다.
$ sfdx force:source:pull -u DevSbxForSourceTracking
=== Pulled Source
STATE  FULL NAME        TYPE         PROJECT PATH
─────  ───────────────  ───────────  ────────────────────────────────────────────────────────────────────
Add    Account.Test__c  CustomField  force-app/main/default/objects/Account/fields/Test__c.field-meta.xml

아래와 같이 Test__c.field-met.xml라는 메타데이터를 로컬 프로젝트에 가져올 수 있었습니다. 이와 같이, Sandbox상에서 행한 변경도 자동적으로 검출해 로컬의 프로젝트 폴더내에 넣어 넣을 수 있으므로, 릴리스 누설의 걱정이 없어지네요.



덤: Sandbox 소스 추적을 사용하여 개발에 자주 사용하는 명령



함께 기억하고 싶은 자주 사용하는 명령들도 소개해 둡니다.
# Sandbox 上での変更は pull することでローカルプロジェクトに取り込める
$ sfdx force:source:pull -u DevSbxForSourceTracking

# ローカルプロジェクトでの変更は、push することで Sandbox に反映できる。
$ sfdx force:source:push -u DevSbxForSourceTracking

# Sandbox 上の既存のメタデータを取り込みたい場合は retrieve が使える
$ sfdx force:source:retrieve -u DevSbxForSourceTracking -m ApexClass:MyApexClass 

참고


  • Salesforce DX Developer Guide | Sandboxes
  • Salesforce CLI Command Reference
  • 좋은 웹페이지 즐겨찾기