Magento2 Data Migration Tool
Basic Information about Data migration tool
As we all know that, Magento 2 will come with a new architecture and database design. To ease up upgrade process, Magento released official Data Migration Tool that will help developers migrate store data from Magento 1 to Magento 2.
Important: This tool only transfers data. Themes and customizations of your store can’t be automatically changed or migrated to Magento2.
Magento 2 Migration tool- main features
- Migrate Stores, Store views
- Migrate Attribute Sets, Attribute Groups, Attributes
- Migrate Categories
- Migrate Products
- Migrate Customers
- Migrate Sales Data: Sales Orders, Sales Invoices, Sales Shipments…
- Migrate Product Reviews, Rating data.
Data Flow Diagram:
The following diagram shows the flow of Magento1 to Magento 2 migration.
Internal Structure for Data Migration Tool
Data Migration Tool
For Data Migration Magento provides the Data Migration Tool, a command-line interface (CLI) that provides verification, progress tracking, logging, and testing functions.
The migration tool operates in three modes to transfer and receive data from Magento 1 to Magento 2:
- Settings mode: Migrates all possible configuration settings from Magento 1 to Magento2
- Data mode: Bulk migrates data from your Magento 1 database to your Magento 2 database
- Delta mode: Incremental “catch-up” migration after the initial bulk data migration
Preconditions before you run the Migration tool
A. Check that the data migration tool has a network connection to the Magento 1 and Magento 2 databases.
B. For communicating the migration tool with database open ports in your firewall.
C. Disable all the cron jobs of Magento2.
D. Set up the configuration and mapping files.
Install the Data Migration Tool
Step1:After Download the Data Migration tool You install tool into empty Magento2 installation with Composer.
It’s not an extension, but standalone shell app that requires Magento2 framework to work. It’s located in vendor/magento/data-migration-tool/bin/migrate.
Step2:Before migrate the data you must edit configuration file and the path of the file vendor/magento/data-migration-tool/etc/ce-to-ce/ folder.
Step3: For changes edit in configuration minimum required would be source(M1) and destination(M2) database connections in config.xml like below screen shoot.
Step4: As above described code is sufficient if you want to add password and table prefix parameter follow below structure.
Database user password: password=
For example, if your database owner’s user name is root with password pass and you use the prefix magento1 in your Magento 1 database, use the following in config.xml:
Step5: The Data Migration Tool uses mapping files to enable you to perform custom database mapping between your Magento 1 and Magento 2 databases.
Step6: The custom database mapping includes
- Changing table names
- Changing field names
- Ignoring tables or fields
- Adapt transferring data of a field to Magento 2 format
Step7: Mapping files for supported Magento versions are located in subdirectories ofyour Magento 2 install dir>/vendor/magento/data-migration-tool/etc
Step8: To use the mapping files:
- Rename or copy them to remove the .dist extension.
- Edit them using the schema located in
- Then change config.xml in
node with the new name of the file.
Step9: The below directory contains the following configuration files:
|Mapping file name||Description|
|class-map.xml.dist||Dictionary of class mappings between Magento 1 and Magento 2|
|dfsconfig.xml.dist||Main configuration file that specifies the Magento 1 and Magento 2 database configurations, step configuration, and links to mapping files|
|customer-attr-document-groups.xml.dist||List of tables used in the custom customer attributes step.|
|customer-attr-map.xml.dist||Map file that is used in Custom Customer Attributes Step.|
|deltalog.xml.dist||Contains the list of tables required for database routines setup.|
|eav-attribute-groups.xml.dist||Contains list of attributes that are used in Eav Step.|
|eav-document-groups.xml.dist||Contains list of tables that are used in Eav Step.|
|map-eav.xml.dist||Map file that is used in EAV Step.|
|map-log.xml.dist||Log mapping file.|
|EE only. map-sales.xml.dist||Map file that is used in SalesOrder step.|
|settings.xml.dist||Setting migration configuration file that specifies rules required for migrating the core_config_data table.|
|customer-attribute-groups.xml||Contains list of attributes that are used in Customer Attributes Step.|
|customer-document-groups.xml||Contains list of tables that are used in Customer Attributes Step.|
|map-customer.xml||Map file that is used in Customer Attributes Step.|
|order-grids-document-groups.xml||Contains list of tables that are used in OrderGrids Step.|
First, you migrate settings, websites and stores to Magento2. Most of Magento data is related to websites and stores, so this needs to go first. To change how settings are migrated:
1. Rename or copy settings.xml.dist in a folder “etc/
2. After remove .dist it comes settings.xml.
3. Make changes to config.xml
php migrate settings –config=
When you migrate data, the Data Migration Tool verifies that tables and fields are consistent between Magento 1 and Magento 2. If not, an error displays that lists the problematic tables and fields. These entities, for example, can belong to some extensions from Magento 1 that do not exist in the Magento 2 database.
If you encounter such an error, you can:
- Install the corresponding extensions in Magento 2 if they exist
- Ignore them by adding
tags to the map.xml file
After resolving issues, run the Data Migration Tool again.
To run the Data Migration Tool, use the following command:
php migrate data –config=
Now this is where it gets interesting. After successful data migration, you can always just append new M1 entries to M2 database with delta migration, it will continue where it stopped last time. Delta doesn’t migrate new or changed products or categories (at the moment of writing), only customers, orders, and similar customer related data.
While doing data migration, set of m2_* tables are created in your M1 database with set of triggers that enables tracking changes.
Delta is here to reduce migration time to minimum when going l
Data that should be migrated manually as follow:
In the manually migration of data there are three things:
- Storefront Design
Migrate Media: Meadia can migrate fro admin panel by follow the following steps
This section applies to you only if you store media files in the Magento database. This step should be performed before migration of data.
Step1: Log in to the Magento 1 Admin Panel as an administrator.
Step2: After that go to System->configuration.
Step3: After that go to System under Advanced tab.
Step4: Now go to Storage Configuration for Media, Select Media Database list, click the name of your media storage database. Then click on synchronize.
Step5: After that login to magento2 admin panel as administrator..
Step6: Then go to Stores->Configuration.
Step7: Then go to System under Advanced tab
Step8: Now go to Storage Configuration for Media, Select Media Database list, click the name of your media storage database. Then click on synchronize button.
Media files on the file system
Copy media folder from magneto1 to magento2 manually but one thing should be noted do not copied the .htaccess file because magneto 2 already have .htaccess file
- Design in files (css, js, templates, XML layouts) changed its location and format
- Layout Updates stored in database. Placed through Magento 1 Admin in CMS Pages, CMS Widgets, Category Pages and Product Pages.
ACLs (Access Control Lists)
- You must manually re-create all credentials for web services APIs (that is, SOAP, XML-RPC, and REST)
- You must manually re-create all administrative users and associate them with access privileges
After you have completed your migration and thoroughly tested your new Magento 2 site, perform the following tasks:
- Put Magento 1 in maintenance mode and permanently stop all Admin activities
- Start Magento 2 cron jobs
- Flush magneto2 cache.
- Reindex all magento2 indexers.
- Change DNS, load balancers, and so on to point to Magento 2 production hardware.