Jawaban:
Kesalahan ini terjadi ketika alat migrasi gagal mentransfer data (mis. Karena pelanggaran integritas) tanpa memutar kembali, dan dijalankan kembali. Itu mencoba untuk membuat set atribut "Migration_Default" dan gagal, karena sudah ada dalam database.
Yang harus Anda lakukan adalah:
1) Kembalikan database Magento 2.0 Anda dari salinan yang (semoga) Anda buat sebelum menjalankan alat migrasi.
2) Jalankan alat migrasi lagi dan periksa kesalahan pertama yang gagal. Dalam kasus saya itu adalah:
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'home-1' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID'
3) Perbaiki masalah (saya harus menghapus baris di DB secara manual).
Ulangi langkah-langkah sampai Anda menyelesaikan semua kesalahan dan melihat pesan yang terdengar manis:
Migration completed
Saya menemukan solusi ini yang memecahkan masalah ini untuk saya https://github.com/magento/data-migration-tool/issues/235#issuecomment-321923437
Solusinya adalah mengubah nama semua nilai yang mengandung nama "Default" di bidang "attribute_value_name" pada tabel eav_attribute_set menjadi "Default_x" di database Magento 1 dan menjalankan migrasi dari awal.
Dalam kasus saya, ada 9 catatan dengan nama "Default". Jadi saya mengganti nama mereka menjadi Default_1 ke Default_9 dan itu bekerja dengan sempurna!
EAV_ATTRIBUTE_GROUP_ATTRIBUTE_SET_ID_ATTRIBUTE_GROUP_CODE
, dan diselesaikan dengan pendekatan yang serupa:UPDATE eav_attribute_group SET attribute_group_name = CONCAT(attribute_group_name, "_", attribute_set_id) WHERE attribute_group_name = "General";
Dalam kasus saya : Itu terjadi pada saya dan saya harus mengimpor cadangan dari basis data magento 2 saya sebelum memuat ulang migrasi.
Dalam kasus Anda : Mungkin Anda harus memuat ulang migrasi data untuk kedua kalinya.
Untuk memperbaiki masalah ini,
Anda dapat melakukannya melalui aplikasi atau antarmuka SQL querying Anda.
DELETE FROM eav_attribute_set WHERE attribute_set_name != 'Default';
Periksa ulang dengan migrasi Database Magento Anda 2. Terkadang Kami tidak mengubah nama database dalam alat migrasi data.
Instal ulang instance Magento segar dan tambahkan nama database dengan benar dalam alat migrasi data
Migrasi Data-Alat tidak menerima data dari sumber di utf8.
Berikut ini adalah solusi sederhana untuk masalah ini:
Edit: 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;
}
Dalam pengalaman saya, ada sampel data yang diinstal. Jadi, saya sudah melakukan langkah-langkah berikut.
Lalu, saya bisa bermigrasi.
Memperbaiki masalah saya dengan sql berikut:
Pelanggaran batasan integritas: 1062 Entri duplikat '4-Gambar' untuk kunci - Magento 2
delete from eav_attribute_group WHERE attribute_group_name = 'Images';
Jadi cobalah sesuatu
delete from eav_attribute_group WHERE attribute_group_name = 'Home';