A high-level overview of how data is migrated from Magento 1 to Magento 2 using the Data Migration Tool
Modes
The Data Migration Tool splits the migration process into three phases or modes in order to transfer and adapt data from Magento 1.x to Magento 2.x. The three modes are listed here and must be run in this order:
- Settings Mode: migrates the system configuration and website-related settings.
- Data Mode: migrates database assets in bulk.
- Delta Mode: migrates incremental changes (changes since the last run), such as new customers and orders.
Steps
The Data Migration Tool uses a list of steps within each mode to migrate a particular type of data. For example, in the Settings mode, there are two steps used to migrate the all the settings data: the Stores step and the Settings step. Details about the specific data that is migrated in each of these steps.
Stages
Within each step are three stages that are always executed in this order to ensure the data gets properly migrated:
- Integrity Check: Compares the table field names, types, and other info to verify compatibility between Magento 1 and 2 data structures.
- Data Transfer: Transfers the data table by table from Magento 1 and 2.
- Volume Check: Compares the number of records between tables to verify that the transfer was successful.
Map files
At the lowest level of the migration processes are the XML map files. The Data Migration Tool uses map files within the stages of a step to transform different data structures between the Magento 1.x and 2.x tables.
For example, when you transform data from a Magento Open Source 1.8.0.0 database to Magento Open Source 2.x.x, the map file accounts for the fact that a table was renamed, and renames it accordingly in the destination database. If there are no differences in data structure or data format, the Data Migration Tool transfers it as-is, including data from tables created by extensions, to the Magento 2 database.
When differences are not declared in map files, then the Data Migration Tool displays an error and does not start.