magento2-sample-data
magento2-sample-data copied to clipboard
Install fails with the error "Unable to apply data patch Magento\CustomerSampleData\Setup\Patch\Data\InstallCustomerSampleData" on EE/Commerce
Using a clean Docker stack based on the versions mentioned in the official requirements page, I always end up with the following error when trying to install the sample data:
Unable to apply data patch Magento\CustomerSampleData\Setup\Patch\Data\InstallCustomerSampleData for module Magento_CustomerSampleData. Original exception message: Rolled back transaction has not been completed correctly.
When digging up a bit, I can figure out this is caused by the following file: vendor/magento/module-customer-sample-data/fixtures/customer_profile.csv
, and because it has the ID 2
hardcoded in the gender
column:
firstname,lastname,email,password,dob,gender,street,city,region,country_id,postcode,telephone
Veronica,Costello,"[email protected]","[email protected]","1973-12-15",2,"[""6146 Honey Bluff Parkway"",""""]",Calder,Michigan,US,"49628-7978","(555) 229-3326"
HERE ---^
Looking at the database, I can see that the IDs seem to have a increment step of 3 and not 1, which means that 2
cannot occur when using a single database node (typical configuration on a developer instance).
option_id | attribute_id | sort_order |
---|---|---|
1 | 58 | 0 |
4 | 58 | 1 |
7 | 58 | 3 |
(58
is the ID of th attribute gender
on customers)
I guess hardcoding IDs is a bad practice anyway, so perhaps the best solution would be to use the label in that file (Female
) and adapt the injection code to it.
any new? same here :/
Somehow, modifying the value to either 1 or 4 doesn't work for me either. Only way I can make the installation work is to exclude the customer sample data installation completely by commenting out the setup line inside vendor/magento/module-customer-sample-data/Setup/Installer.php .....
/**
* {@inheritdoc}
*/
public function install()
{
//$this->customerSetup->install(['Magento_CustomerSampleData::fixtures/customer_profile.csv']);
}
Any thoughts?