eShopSync

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.

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

 

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/

 

Exit mobile version