0

I'm using the data-migration tool for migrating my site from Magento ver. 1.6.2.0 to Magento ver. 2.4.3.

Getting below error while running migrate:data command.

[2021-11-02 17:00:21][INFO][mode: data][stage: integrity check][step: EAV Step]: started 100% [============================] Remaining Time: < 1 sec In ErrorHandler.php line 61:

Notice: Undefined index: in >/var/www/vhosts/blablabla.com/httpdocs/blablabla/testing/vendor/magento/data-migration-tool/src/Migration/Step/Eav/Integrity/ClassMap.php on line 111

Steps to reproduce:

  1. A fresh install of Magento 2.4.3-p1
  2. A DB of Magento 1.6.2.0 in a remote server with remote access working
  3. Data-migration-tool 2.4.3 installed
  4. Created a module with migration settings
  5. migrate:settings command is all fine
  6. migrate:data stops with an error

I can't tell if it already left the "EAV Step" and started the next step "Customer Attributes Step", or if it's still "EAV Step", but the error line is inside the function checkClassMapping(), so I'm not even sure of what to do now.

Can't find anything about this error in particular, and everything else about the EAV Step errors doesn't appear to be what I'm having.

Any help would be beneficial?

Thanks!

1 Answer 1

0

Replacing the below function code in vendor/magento/data-migration-tool/src/Migration/Step/Eav/Integrity/classmap.php worked for me.

public function checkClassMapping()
{
    $classMapFailed = [];
    foreach ($this->classMapFields as $tableName => $classMapFields) {
        $sourceRecords = $this->helper->getSourceRecords($tableName);
        $sourceRecords = $this->ignoredAttributes->clearIgnoredAttributes($sourceRecords);
        $primaryKeyName = $this->getPrimaryKeyName($tableName);
        if(!isset($sourceRecords) ){
            continue;
        }
        if(!isset($sourceRecords) ){
            continue;
        }
        if(!isset($primaryKeyName) ){
            continue;
        }
        foreach ($sourceRecords as $attribute) {
            foreach ($classMapFields as $field) {
                $className = $attribute[$field];
                if (empty($className)) {
                    continue;
                }
                if (!$this->classMapReader->hasMap($className)) {
                    $classMapFailed[] = [
                        'document' => $tableName,
                        'field' => $field,
                        'error' => sprintf(
                            'Class %s is not mapped in record %s=%s',
                            $attribute[$field],
                            $primaryKeyName,
                            $attribute[$primaryKeyName]
                        )
                    ];
                }
            }
        }
    }
    return $classMapFailed;
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.