• Stars
    star
    405
  • Rank 106,656 (Top 3 %)
  • Language
    TypeScript
  • License
    BSD 3-Clause "New...
  • Created almost 5 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SFDMU is a cutting-edge Salesforce data migration tool for seamless org population from other orgs or CSV files. It handles all CRUD operations on multiple related objects in one go.

SFDMU SFDX Data Move Utility (SFDMU)

The documentation can be found here: SFDMU Help Center

The SFDMU GUI Desktop Application: SFDMU GUI Desktop App

Please, see the User Support Policy before opening cases

Welcome to contribute to the SFDMU! Please, take some time to read our Contribution Policy


Table of contents

Introduction.

The SFDX Data Move Utility (SFDMU) is the most modern and powerful plugin for salesforce data migration.

Makes data seeding extremely easy and fast.

This Tool is the innovative and very handy alternative to the traditional salesforce data loader application as well as to the set of the force:data:tree commands.

✔ The SFDMU will help you to populate your Scratch / Dev / Sandbox / Prod org with records imported from another org or CSV files.
✔ It can perform all CRUD operations (Insert / Update / Upsert / Delete) also for multiple related sObjects.
✔It's the comprehensive All-In-One data migration solution having a bulk of unique features have never provided before by any of the existing tools.
✔ This Plugin is approved and digitally signed by Salesforce.

Why should you use the SFDMU ?

The Plugin is equipped with an extended built-in functionality making migration of multiple related objects very handy:

  • It supports direct Org-to-Org data migration without having to deal with annoying intermediate CSV files.
  • Full support of CRUD operations: Insert / Update / Upsert / Delete.
  • Supports import and export of CSV files.
  • Supports multiple object sets allowing you to execute multiple migration jobs in one run.
  • Supports simultaneous migration of multiple SObjects in one run..
  • Handles complex circular references between multiple SObjects.
  • Simple and user-friendly configuration just with a single export.json file
  • Can be run from a command line, can be easly integrated into any DevOps pipeline.
  • Handles self-referenced fields, e.g. Account.ParentId.
  • Supports External Id field of any type even formula and auto-name fields, a field does not need to be defined as External Id.
  • Supports composite external Id keys.
  • Supports data migration preserving Record Type for each record.
  • Supports fully customized Fields and Object Mapping.
  • Has the built-in ETL features, including customized Value Mapping, expression-based records transformation.
  • Supports migration of Person Accounts, including mixed account records of Busines and Person type.
  • Supports migration of Salesforce Files as well as old-fashioned Notes , Attachments, including file binary data.
  • Supports record owner assignment, including option for a default owner assignment.
  • Has the built-in data anonymization feature to anonymize a sensitive source data (e.g. coming from Production org).
  • Supports binding of polymorphic lookup fields (e.g. FeedItem.ParentId).
  • Secured and safe. All operations are performed on the client's machine, there is no cloud interaction, so all is completely safe.
  • Fast performance. Processes only a selected subset of records and fields that need to be inserted or updated and does not touch others.
  • The core functionality can be extended by using the Custom Add-On Api. You can create your own Add-On for your special purposes.

Use case.

Creating of a scratch org, dev org or even a sandbox today is a pretty fast and simple action. On the other hand the newly created organization has only metadata ready-to-use, has no real data that is always strongly required to develop and debug any Salesforce application. It makes no sense to manually create or load data traditional way (with the Salesforce Data Loader) for each new org because the data easily can be taken in whole or in part from production or from the sandbox and imported into the new organization.

In some cases we already have the data, but it's only required to modify particular records or even fields without touching others. When a date model is complex and contains a large number of dependencies, it becomes a very hard and annoying task.

Also there is a situation when as client you would like to keep the data model clean without creating external ID fields in the SObject, therefore your goal is to find some workaround to update records in your developer org from the existing source without adding new fields.

Population of the RecordtypeId field is another quite difficult task, when ids are not consistent between environment.

At current moment, there is no effective tool for both inserting and updating dependent objects based on any unique field used as External Id. In most cases people use Excel spreadsheets to build source tables and try to mix between them to get proper values for the lookup or master-detail fields. So filling out even a small number of objects turns into a huge pain...

Watch the demo. The Plugin in action.

Running the Plugin from the command console / terminal:

SFDMU DEMO

Installation of the Plugin.

Prerequisites.

Before using the SFDMU you need to perform the usual procedure of installing SFDX CLI on your computer from here:

https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm

Installation of the SFDMU as a standard SFDX plugin:

# If you have an old version of the Plugin, uninstall it:
$ sfdx plugins:uninstall sfdmu

# Install the latest version of the Plugin:
$ sfdx plugins:install sfdmu

Installation with the SFDMU source code:

# If you have outdated source code already cloned and linked, go to the directory containing old Plugin source code and unlink it from the SFDX by typing:
$ sfdx plugins:unlink

# Clone the source code:
$ git clone https://github.com/forcedotcom/SFDX-Data-Move-Utility

# Make the installation directory current:
$ cd SFDX-Data-Move-Utility

# Install npm modules:
$ npm install

# Link the Plugin to the SFDX:
$ sfdx plugins:link

Configuring the migration job.

Example of basic configuration: upserting Accounts.

Create a new export.json file with the following format:

{
    "objects": [
        {
            "query": "SELECT Id, Name FROM Account",
            "operation": "Upsert",
            "externalId": "Name"
        }
    ]
}

Example of advanced configuration: upserting multiple related SObjects.

Assume you have the following data model with complex circular relationships between SObjects:

diagram

Let's say, each record has unique Name value, so you want to use Name field as an External Id field for all SObjects in that data model.

You can Upsert all records preserving relationships between SObjects by creating an export.json file with the following format:

{
    "objects": [
        {
            "query": "SELECT Id, Phone, TestObject3__c FROM Account WHERE Name LIKE 'TEST_ACC_%'",
            "operation": "Upsert",
            "externalId": "Name"
        },
        {
            "query": "SELECT Id, Account__c, TestObject3__c, RecordTypeId FROM TestObject__c",
            "operation": "Upsert",
            "externalId": "Name"
        },
        {
            "query": "SELECT Id, Account__c, TestObject__c FROM TestObject2__c",
            "operation": "Upsert",
            "externalId": "Name"
        },
        {
            "query": "SELECT Id, TestObject2__c FROM TestObject3__c",
            "operation": "Upsert",
            "externalId": "Name"
        }
    ]
}

Note! Object API names in export.json query expressions are case-sensitive, make sure they are spelled correctly if you want them to be imported.

Running the migration job.

  • Go to the directory where your export.json is located.

  • Use the following command to run a direct migration between source and target salesforce orgs:

$ sfdx sfdmu:run --sourceusername [email protected] --targetusername [email protected]
  • For import data from CSV files:
$ sfdx sfdmu:run --sourceusername csvfile --targetusername [email protected]
  • For export data into CSV files:
$ sfdx sfdmu:run --sourceusername [email protected] --targetusername csvfile


Documentation articles:

More Repositories

1

postman-salesforce-apis

Salesforce API Postman Collection
1,071
star
2

salesforcedx-vscode

Salesforce Extensions for VS Code
TypeScript
949
star
3

aura

This project is archived, please see the readme for additional resources.
JavaScript
676
star
4

scrollerjs

A JavaScript library that helps you build performant UI components for the web.
JavaScript
637
star
5

phoenix

Java
560
star
6

SalesforceMobileSDK-iOS

iOS SDK for Salesforce
Objective-C
520
star
7

cli

Salesforce CLI
477
star
8

dataloader

Salesforce Data Loader
Java
440
star
9

SalesforceMobileSDK-Android

Android SDK for Salesforce
Java
313
star
10

wsc

Java
266
star
11

mobile-ui-elements

Custom elements to build beautiful mobile applications on salesforce.
JavaScript
247
star
12

idecore

The core plug-ins for the Force.com IDE
Java
238
star
13

sfdx-scanner

HTML
215
star
14

EMP-Connector

A simplified cometd connector for Enterprise Messaging Platform
Java
185
star
15

CustomMetadataLoader

Tool to help users bulk create and update custom metadata records in salesforce.com from a CSV file.
Apex
161
star
16

b2b-commerce-on-lightning-quickstart

Shell
157
star
17

sfdx-core

TypeScript
151
star
18

force-dot-com-esapi

Enterprise Security API for the Apex language on the Force.com platform.
Apex
129
star
19

Analytics-Cloud-Dataset-Utils

Friendly utility to load your on-prem data, whether large or small, to Einstein Analytics Datasets, with useful features such as autoloading, dataflow control and dataset inspection.
JavaScript
129
star
20

SalesforceCanvasFrameworkSDK

Java
122
star
21

LightningTestingService

JavaScript
122
star
22

sfdx-simple

Apex
116
star
23

quiz-host-app

Multiplayer quiz app built on Salesforce technology (host app)
Apex
108
star
24

SalesforcePy

An absurdly simple package for making Salesforce Rest API calls.
Python
106
star
25

dependencies-cli

SFDX plugin for metadata dependencies tooling API
CSS
101
star
26

sfdx-travisci

Apex
98
star
27

Data-Migration-Tool

Java
98
star
28

ConnectApiHelper

Helper class that makes it easier to post Chatter @-mentions, rich text, and inline images with Apex code.
Apex
93
star
29

RecordViewer

Record Viewer - UI API + Node.js Sample App
JavaScript
86
star
30

salesforcedx-templates

Salesforce Templates Node Library
TypeScript
79
star
31

SFDX-Data-Move-Utility-Desktop-App

This repository contains the special Desktop GUI Application, that will help you to prepare and execute data migration packages using the SFDMU Plugin.
TypeScript
77
star
32

sfdx-plugin-generate

TypeScript
73
star
33

salesforcedx-docker

The official Dockerfile for Salesforce DX
JavaScript
72
star
34

ApexUnit

ApexUnit is a powerful continuous integration tool for the Force.com platform
Java
71
star
35

SalesforceMobileSDK-Shared

JavaScript
68
star
36

cinnamon

Cinnamon is a Force.com app that enables you to build and run Selenium tests to validate custom UI pages with Visualforce/Javascript in your Salesforce org.
Apex
67
star
37

commerce-on-lightning-components

Commerce on Lightning out-of-the-box component source code for reference and educational purposes
JavaScript
67
star
38

SalesforceMobileSDK-Samples

Samples for working with the Salesforce Mobile SDK
C
65
star
39

commerce-on-lightning

An SFDX Plugin to setup a B2C or B2B Store
TypeScript
64
star
40

WSDL2Apex

Apex
62
star
41

salesforce-alm

A read-only snapshot of the salesforce-alm plugin known as the "toolbelt".
TypeScript
61
star
42

devops-center-feedback

61
star
43

SlidingCarousel

A tool used to create the onboarding experience for Salesforce1's hybrid application on iOS.
Objective-C
59
star
44

LightningFlowComponents

âš¡ A collection of sample Lightning Components that can be used to enhance Salesforce Lightning Flow.
JavaScript
58
star
45

source-deploy-retrieve

JavaScript toolkit for working with Salesforce metadata.
TypeScript
55
star
46

PerlKoans

Perl
51
star
47

go-soql

Golang tag library to generate SOQL queries
Go
51
star
48

java-sdk

NO LONGER MAINTAINED: Database.com SDK for Java
Java
47
star
49

SalesforceMobileSDK-Templates

Kotlin
46
star
50

SalesforceMobileSDK-ReactNative

Objective-C
46
star
51

user-access-visualization

Apex
46
star
52

AuraEnabledScanner

JavaScript
45
star
53

SalesforceMobileSDK-CordovaPlugin

Cordova plugin for the Salesforce Mobile SDK
Java
45
star
54

sfdx-analytics

Einstein Analytics sample application templates
JavaScript
44
star
55

sfdx-jenkins-org

Jenkins example with org development
Apex
44
star
56

cli-packages

TypeScript
43
star
57

lwc-dev-server-feedback

LWC Local Development
43
star
58

LWC-Mobile-Samples

Mobile sample applications and code for LWC development
JavaScript
42
star
59

isvte-sfdx-plugin

TypeScript
42
star
60

SalesforceCanvasJavascriptSDK

A JavaScript SDK used to integrate applications with the Force.com Canvas framework
JavaScript
42
star
61

OrgMonitor

JavaScript
41
star
62

Salesforce1-Dev-Guide-Setup-Package

40
star
63

sfdx-bitbucket-package

Bitbucket Pipelines examples with Package development
Apex
39
star
64

project-force

Reference implementation app for Feature Management.
Apex
37
star
65

schemas

Salesforce DX Schemas
JavaScript
36
star
66

Einstein-GPT-for-Developers

Einstein GPT For Developers
36
star
67

salesforcedx-actions

(Unofficial) GitHub Actions for SalesforceDX using the Salesforce CLI
Shell
34
star
68

aura-note

JavaScript
34
star
69

lightning-language-server

LWC and Aura Language Servers - shipped as part of the Salesforce VSCode Extensions
JavaScript
33
star
70

distributions

Low-level primitives for collapsed Gibbs sampling in python and C++
C++
33
star
71

apex-tmLanguage

Salesforce Apex Language syntax grammar used for colorization
TypeScript
32
star
72

Salesforce-CDP-jdbc

JDBC driver to connect to Salesforce CDP.
Java
32
star
73

sfdx-dev-packages

TypeScript
30
star
74

sfdx-gitlab-org

GitLab Pipelines example with org development
Apex
30
star
75

code-builder-feedback

This repository is used to collect feedback for the Code Builder beta.
29
star
76

eslint-plugin-aura

Salesforce Lightning (Aura) specific linting rules for ESLint
JavaScript
27
star
77

git2gus

A Github application to keep issues in sync with Agile Accelerator
JavaScript
27
star
78

salesforcedx-vscode-slds

TypeScript
26
star
79

sfdx-bitbucket-org

Bitbucket Pipelines examples with org development
Apex
26
star
80

lwc-builder

VSCode Extension to kickstart Lightning Web Component development.
TypeScript
26
star
81

sfdx-circleci

Apex
24
star
82

ServiceSDK-iOS

Salesforce Embedded Service SDK for iOS
23
star
83

dx-empty

Template repository representing the empty file system structure for a new Salesforce DX project.
JavaScript
23
star
84

SalesforceMobileSDK-Package

JavaScript
22
star
85

soql-tooling

SOQL Language Tooling features including the Language Server and Query Builder UI.
TypeScript
22
star
86

RecordViewerNative

Record Viewer Native - UI API + React Native Sample App
JavaScript
21
star
87

salesforce-deskcom-api

A lightweight, flexible library for desk.com APIv2, it supports basic auth and OAuth as authentication methods and is written to be auto discoverable.
Ruby
21
star
88

sfdx-gitlab-package

Apex
20
star
89

lwc-builder-ui

JavaScript
20
star
90

almond

Native Force.com Learning Management Application
Apex
20
star
91

SiteCrawler

This is a Java library which can be used to crawl the content of some of web properties (www.salesforce.com, blogs.salesforce.com for example). It supports dynamic scaling (depending on available machine power (CPU, RAM) and network capacity) out of the box. It also has a Plugin structure, which allows others to write code (plugins) that act on the crawled pages.
Java
20
star
92

devops-center-roadmap

19
star
93

lwc-dev-mobile

TypeScript
19
star
94

sfdx-jenkins-package

Apex
19
star
95

source-tracking

JavaScript library for tracking local and remote Salesforce metadata changes.
TypeScript
19
star
96

df17-ant-to-sfdx

Metadata repository demonstrating move from Ant Migration Tools to the Salesforce CLI
Apex
19
star
97

salesforce-datacom-api-java-client

Easy-to-use and efficient Java client library for accessing Data.com APIs using JSON[XML] and OAuth 2.0
Java
19
star
98

commerce-extensibility

Apex
18
star
99

codey-midnight

Dark theme for VS Code configured for accessibility and Salesforce development
18
star
100

salesforcedx-apex

Salesforce Apex Node Library
TypeScript
18
star