例: 組織間でのデータのエクスポートとインポート
アプリケーションをテストするための完璧なデータセットを作り上げ、それが現在はスクラッチ組織にあるとします。別のスクラッチ組織で新機能のコーディングを完了し、ソースコードをプッシュして、必要な権限セットを割り当てました。次は、このスクラッチ組織にもう一方の組織からあの完璧なデータセットを入力したいのですが、どうすればよいでしょうか? それをこれから説明します。
この使用事例では、GitHub 上の Salesforce DreamHouse LWC アプリケーションの例での Broker と Properties のカスタムオブジェクトを参照します。データをエクスポートするスクラッチ組織の別名が org-with-data であるとします。同様に、データをインポートするスクラッチ組織の別名が org-needs-data であるとします。org-with-data スクラッチ組織では、次のことがすでに行われているものと想定されています。
- DreamHouse ソースをプッシュして Broker と Properties のカスタムオブジェクトを作成する。
- 権限セットを割り当てる。
- オブジェクトにデータを入力する。
これらの前提作業の手順については、dreamhouse-lwc GitHub リポジトリの README を参照してください。
-
org-with-data スクラッチ組織からデータをエクスポートします。
force:data:soql:query コマンドを使用して SELECT クエリを微調整し、エクスポートするデータセットを正確に返すようにします。このコマンドは結果をターミナルまたはコマンドウィンドウに出力しますが、ファイルは生成しません。
1sfdx force:data:soql:query -u org-with-data --query \ 2 "SELECT Id, Name, Title__c, Phone__c, Mobile_Phone__c, \ 3 Email__c, Picture__c, \ 4 (SELECT Name, Address__c, City__c, State__c, Zip__c, \ 5 Price__c, Beds__c, Baths__c, Picture__c, \ 6 Thumbnail__c, Description__c \ 7 FROM Properties__r) \ 8 FROM Broker__c" -
SELECT ステートメントに満足したら、それを使用してデータを JSON ファイルセットにエクスポートします。
1sfdx force:data:tree:export -u org-with-data --query \ 2 "SELECT Id, Name, Title__c, Phone__c, Mobile_Phone__c, \ 3 Email__c, Picture__c, \ 4 (SELECT Name, Address__c, City__c, State__c, Zip__c, \ 5 Price__c, Beds__c, Baths__c, Picture__c, \ 6 Thumbnail__c, Description__c \ 7 FROM Properties__r) \ 8 FROM Broker__c" \ 9 --prefix export-demo --outputdir sfdx-out --planexport コマンドは JSON ファイルを sfdx-out ディレクトリに書き込み、各ファイル名に export-demo という文字列をプレフィックスとして追加します。ファイルの中にはプラン定義ファイルが含まれ、このファイルが、データが含まれる他のファイルを参照します。プラン定義ファイルは、エクスポートされたオブジェクト (Broker および Properties) ごとに 1 つ含まれます。
-
プラン定義ファイルを指定��ることによって org-needs-data スクラッチ組織にデータをインポートします。
1sfdx force:data:tree:import -u org-needs-data \ 2 --plan sfdx-out/export-demo-Broker__c-Property__c-plan.json--plan パラメータを使用して、force:data:tree:export コマンドによって生成されたプラン実行ファイルのフルパス名を指定します。プラン実行ファイル名の末尾は常に -plan.json になります。
例
もっと複雑な例をお探しですか? easy-spaces-lwc サンプルアプリケーションには、アカウント、関連取引先責任者、および 3 レベルの深度のカスタムオブジェクトチェーンをインポートする方法を示すデータプランがあります。