Description
I have written SQL database migration tool (not yet open source) which runs pretty well.
The tools does a bunch of fixes and writes all executed SQL scripts into core_resource
tables column version
. Column data_version
is null.
After my migration tools has finished the setup scripts in the modules data
folder needs to be run to apply some Magento2 stuff to your Magento1 database. I call the script:
root/setup $ php index.php update
Due to existing data from Magento1 the data updates will fail. I have to disable the data update for modules:
'log' => '1.6.0.0',
'checkout' => '2.0.0',
'directory' => '2.0.0',
'sales' => '2.0.0',
'reports' => '2.0.0',
'review' => '2.0.0',
'tax' => '2.0.0',
and also commented out in files:
- Customer/data/customer_setup/data-install-2.0.0.php Lines 12 - 130
- Catalog/data/catalog_setup/data-install-2.0.0.php Lines 12-44, 94-127 (maybe some more?)
- CatalogInventory/data/cataloginventory_setup/data-install-2.0.0.php Lines 10-14
to be able to run the index.php update
tool.
I suggest the following: Either for all inserted data use MySQL INSERT IGNORE
to silently fail on existing entries OR separate the logic in the data install script between adding data and migrating data (then it is easier to pick the correct install/update script).
AFAIK: there is also a migration script missing in the dev/tools/Magento/Tools/Migration
folder which converts the e.g. backend_model
to the new class names in the EAV tables.