답변:
이 오류는 마이그레이션 도구가 롤백하지 않고 (예 : 무결성 위반으로 인해) 데이터를 전송하지 못하고 다시 실행될 때 발생합니다. "Migration_Default"속성 세트를 작성하려고 시도했지만 데이터베이스에 이미 존재하므로 실패합니다.
당신이해야 할 일은 :
1) 마이그레이션 도구를 실행하기 전에 작성한 사본에서 Magento 2.0 데이터베이스를 복원하십시오.
2) 마이그레이션 도구를 다시 실행하고 실패한 첫 번째 오류를 확인하십시오. 제 경우에는 다음과 같습니다.
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'home-1' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID'
3) 문제를 해결하십시오 (DB에서 행을 수동으로 제거해야했습니다).
모든 오류를 해결하고 달콤한 소리 메시지가 표시 될 때까지 단계를 반복하십시오.
Migration completed
https://github.com/magento/data-migration-tool/issues/235#issuecomment-321923437 에서이 문제를 해결 한이 솔루션을 찾았습니다.
해결 방법은 eav_attribute_set 테이블의 "attribute_value_name"필드에 "Default"라는 이름을 포함하는 모든 값의 이름을 Magento 1 데이터베이스의 "Default_x"로 바꾸고 처음부터 마이그레이션을 실행하는 것입니다.
필자의 경우 이름이 "Default"인 9 개의 레코드가있었습니다. 그래서 이름을 Default_1로 Default_9로 바꾸고 완벽하게 작동했습니다!
EAV_ATTRIBUTE_GROUP_ATTRIBUTE_SET_ID_ATTRIBUTE_GROUP_CODE
하여 비슷한 접근 방식으로 해결되었습니다.UPDATE eav_attribute_group SET attribute_group_name = CONCAT(attribute_group_name, "_", attribute_set_id) WHERE attribute_group_name = "General";
내 경우 : 그것은 나에게 일어 났고 마이그레이션을 다시로드하기 전에 내 magento 2 데이터베이스의 백업을 가져와야했습니다.
귀하의 경우 : 아마도 데이터 마이그레이션을 다시로드해야 할 수도 있습니다.
마이그레이션하는 데이터베이스 Magento 2를 다시 확인하십시오. 때때로 데이터 마이그레이션 도구에서 데이터베이스 이름을 변경하지 않았습니다.
새로운 Magento 인스턴스를 다시 설치하고 데이터 마이그레이션 도구에 데이터베이스 이름을 올바르게 추가하십시오.
Data-Migration-Tool은 utf8의 소스에서 데이터를 수신하지 않습니다.
이 문제에 대한 간단한 해결책은 다음과 같습니다.
편집하다: vendor/magento/data-migration-tool/src/Migration/ResourceModel/Adapter/Mysql.php
public function __construct(
\Magento\Framework\DB\Adapter\Pdo\MysqlFactory $adapterFactory,
\Magento\Framework\DB\Ddl\TriggerFactory $triggerFactory,
array $config
) {
$config['initStatements'] = 'SET NAMES utf8'; // +
$configData['config'] = $config;
$this->resourceAdapter = $adapterFactory->create($configData);
$this->setForeignKeyChecks(0);
$this->triggerFactory = $triggerFactory;
}
내 경험으로는 샘플 데이터가 설치되어 있습니다. 그래서 다음 단계를 수행했습니다.
그런 다음 마이그레이션 할 수 있습니다.