magento2-sample-data icon indicating copy to clipboard operation
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

Open xi-ao opened this issue 1 year ago • 2 comments

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.

xi-ao avatar Mar 27 '23 06:03 xi-ao

any new? same here :/

criskell avatar Jul 20 '23 03:07 criskell

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?

vinodsowdagar avatar Jul 27 '23 13:07 vinodsowdagar