Use Case: Move all accounts owned by one user to another user.
Export Data from the Command Line
The first step in loading data is to prepare the import file. Sometimes we are given a nicely formatted import file, but let's pretend you need to pull the data out of Salesforce first.
In our scenario, we need to export the accounts that need to be moved. To do this, we need to get the Id of the user who currently owns the accounts.
You'll notice that this command starts with soql instead of sfdx force:data:soql:query --query. That is because I have set soql as an alias for the sfdx query command. Check out my other post on SOQL from the Command Line for more details on this technique.
Now that we have the Id of the user who currently owns the accounts, let's get the accounts we need to move over.
Notice that I've added -r csv > chatty_accounts_to_move.csv to the end of this command. This will output the query as a csv and the > symbol will direct the output to a file named chatty_accounts_to_move.csv.
This file does not need to exist yet. If it does not exist, the command will create it for you. Be careful though because if it does exist, this command will overwrite the file.
Import Data from the Command Line
After you have exported your data and updated the csv to have the new owner's Id, you're ready to upload it to Salesforce. You can do that by running:
The force:data:bulk:upsert command is a favorite of mine because it's so easy to use. In this example we are upserting accounts and using the Id column to identify the records. It is possible to use an External Id field here and upsert records based on a field that is not Id!
We are also passing the csv file into this command along with the alias of the org we want to import the data to. The --wait parameter allows you to define the number of minutes the CLI should wait for the upsert to complete. I typically just use 10 each time because the CLI will respond as soon as the upsert finishes.
We are also passing the csv file into this command along with the alias of the org we want to import the data to. The --wait parameter allows you to define the number of minutes the CLI should wait for the upsert to complete. I typically just use 10 each time because the CLI will respond as soon as the upsert finishes.
Continued Learning
While exporting and importing data from the command line is faster than having to open up another application each time, there is a way to do this even faster. Check out Manipulate Salesforce Data from the Command Line to learn how you could do this in a single command.
If you're still getting used to the Salesforce CLI, I recommend checking out some of these links:
If you're still getting used to the Salesforce CLI, I recommend checking out some of these links:
Comments
Post a Comment