Our Blog

Migration of Packages Through Force.com Migration Tool

Migration of Packages Through Force.com Migration Tool

In this blog we will learn Migration of packages through Force.com migration tool, i.e. migrating a package from one org to another with the use of force.com migration tool.

 

Prerequisites

You should have following software installed in your system

  • Java version 1.7.0_21
  • Apache Ant version 1.7.0

Steps to follow for force.com migration

Step 1: Download Force.com migration tool

You can download the tool from the following link: Force.com migration tool
extract it in the root folder, so that you can access it through terminal easily.

Step 2: Open the terminal

1) Open the salesforce_ant_38.0 folder.
2) Open the sample folder.

step1

Retrieving the data of an org

Step 1: Open The build.properties folder through editor

1) Go to salesforce_ant_38.0 > sample > build.properties. Open with editor.
2) Insert your user name and password of the org which contains the package you want to migrate.

<!-- 
    /**
    * Webkul Software.
    *
    * @category Webkul
    * @author Webkul
    * @copyright Copyright © 2000-2016 salesforce.com, inc. All rights reserved.
    */
    -->
# Specify the login credentials for the desired Salesforce organization
sf.username = <Insert your Salesforce username here>
sf.password = <Insert your Salesforce password here>//password+securitytoken

Step 2: Open The build.xml folder through editor

1) Go to salesforce_ant_38.0 > sample > build.xml. Open with editor.
2) Insert your user name and password of the org which contains the package you want to migrate.

<!-- 
    /**
    * Webkul Software.
    *
    * @category Webkul
    * @author Webkul
    * @copyright Copyright © 2000-2016 salesforce.com, inc. All rights reserved.
    */
    -->

<condition property="sf.username" value="<Insert your Salesforce username here>"> <not> <isset property="sf.username"/> </not> </condition>
<condition property="sf.password" value="<Insert your Salesforce Password+token here>"> <not> <isset property="sf.password"/> </not> </condition>

Step 3: Retrive the data of package from org to system

1) Create a folder of the package name you want to migrate. For ex- “mypackage”
2) Now, in build.xml you will find a target tag mention below. Apply the changes as per your need.

      <!-- 
    /**
    * Webkul Software.
    *
    * @category Webkul
    * @author Webkul
    * @copyright Copyright © 2000-2016 salesforce.com, inc. All rights reserved.
    */
    -->
      <target name="test">
      <!-- Upload the contents of the "mypkg" package -->
      <!--<sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" deployRoot="mypkg" rollbackOnError="true"/>
      <mkdir dir="retrieveOutput"/>--><!--Comment the sf:deploy tag while you are retrieving data-->
      <!-- Retrieve the contents into another directory -->
      <!--Mention the name of your folder-->
      <sf:retrieve username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="mypackage" packageNames=""/>
</target>

Step 4: Go to terminal. Write “ant” and press enter
step2

 

Deploy the data to an org

Step 1: Open The build.properties folder through editor

1) Go to salesforce_ant_38.0 > sample > build.properties. Open with editor.
2) Insert your user name and password of the org in which you want to deploy the package.

<!-- 
    /**
    * Webkul Software.
    *
    * @category Webkul
    * @author Webkul
    * @copyright Copyright © 2000-2016 salesforce.com, inc. All rights reserved.
    */
    -->
# Specify the login credentials for the desired Salesforce organization
sf.username = <Insert your Salesforce username here>
sf.password = <Insert your Salesforce password here>//password+securitytoken

Step 2: Open The build.xml folder through editor

1) Go to salesforce_ant_38.0 > sample > build.xml. Open with editor.
2) Insert your user name and password of the org in which you want to deploy the package.

<!-- 
    /**
    * Webkul Software.
    *
    * @category Webkul
    * @author Webkul
    * @copyright Copyright © 2000-2016 salesforce.com, inc. All rights reserved.
    */
    -->
<condition property="sf.username" value="<Insert your Salesforce username here>"> <not> <isset property="sf.username"/> </not> </condition>
<condition property="sf.password" value="<Insert your Salesforce Password+token here>"> <not> <isset property="sf.password"/> </not> </condition>

Step 3: Remove the namespace from package.xml

1) Go to salesforce_ant_38.0 > sample > mypackage(The folder you mentioned in retrievetarget above) > package.xml. Open with editor.
2) You will find description of the package.

<!-- 
    /**
    * Webkul Software.
    *
    * @category Webkul
    * @author Webkul
    * @copyright Copyright © 2000-2016 salesforce.com, inc. All rights reserved.
    */
    -->
<fullName><Package Name></fullName>
<apiAccessLevel>Unrestricted</apiAccessLevel>
<description><Description></description>

<!--Remove the name space mentioned here, otherwise it will throw error-->
<namespacePrefix><namespace></namespacePrefix>

Step 4: Deploy the data of package from system to org

1) Now, in build.xml you will find a target tag mention below. Apply the changes as per your need.

<!-- 
    /**
    * Webkul Software.
    *
    * @category Webkul
    * @author Webkul
    * @copyright Copyright © 2000-2016 salesforce.com, inc. All rights reserved.
    */
    -->
<target name="test">
      <!-- Upload the contents of the "mypackage" package -->
      <sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" deployRoot="mypackage" rollbackOnError="true"/>
      <!comment the sf:retrieve tag while deploying-->
      <!--<mkdir dir="retrieveOutput"/>-->
      <!-- Retrieve the contents into another directory -->
      <!--<sf:retrieve username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="retrieveOutput" packageNames="MyPkg"/>-->
</target>

Step 5: Go to terminal. Write “ant” and press enter

 

Support

That’s all for Migration of packages through Force.com migration tool, still have any issue feel free to add a ticket and let us know your views to make the code better https://webkul.uvdesk.com/en/customer/create-ticket/

 

Leave a Comment

Comments (0)

Please verify that you are not a robot.

Welcome back

Welcome back! Please enter your details

One or more fields have an error. Please check and try again.

Forgot Password?

Tell us about Your Company

How can we help you with your business?