Yanıtlar:
Bu hata, taşıma aracı geri alınmadan veri aktarmadığında (örn. Bütünlük ihlallerinden dolayı) oluşur ve tekrar çalıştırılır. Veritabanında zaten bulunduğundan "Migration_Default" öznitelik kümesi oluşturmaya çalışır ve başarısız olur.
Yapmanız gereken:
1) Magento 2.0 veritabanınızı, taşıma aracını çalıştırmadan önce (umarım) oluşturduğunuz bir kopyadan geri yükleyin.
2) Taşıma aracını tekrar çalıştırın ve başarısız olduğu ilk hatayı kontrol edin. Benim durumumda:
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'home-1' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID'
3) Sorunu düzeltin (DB'deki bir satırı manuel olarak kaldırmak zorunda kaldım).
Tüm hataları silene ve tatlı sondaj mesajını görene kadar adımları tekrarlayın:
Migration completed
Bu sorunu benim için çözen bu çözümü buldum https://github.com/magento/data-migration-tool/issues/235#issuecomment-321923437
Çözüm, eav_attribute_set tablosunun "attribute_value_name" alanındaki "Default" adını içeren tüm değerleri Magento 1 veritabanındaki "Default_x" olarak yeniden adlandırmak ve taşıma işlemini sıfırdan çalıştırmaktır.
Benim durumumda, "Varsayılan" adında 9 kayıt vardı. Bu yüzden onları Default_1 olarak Default_9 olarak değiştirdim ve mükemmel çalıştı!
EAV_ATTRIBUTE_GROUP_ATTRIBUTE_SET_ID_ATTRIBUTE_GROUP_CODE
ve benzer bir yaklaşımla çözüldü:UPDATE eav_attribute_group SET attribute_group_name = CONCAT(attribute_group_name, "_", attribute_set_id) WHERE attribute_group_name = "General";
Benim durumumda : Bu oldu ve taşıma yeniden yüklemeden önce benim magento 2 veritabanının bir yedek almak zorunda kaldı.
Sizin durumunuzda : Belki de veri taşıma işlemini ikinci kez yeniden yüklemeniz gerekiyordu.
Bu sorunu gidermek için,
Bunu SQL sorgulama uygulamanız veya arayüzünüz üzerinden yapabilirsiniz.
DELETE FROM eav_attribute_set WHERE attribute_set_name != 'Default';
Geçiş Veritabanı Magento 2 ile tekrar kontrol edin. Bazen Veri taşıma aracında veritabanı adını değiştirmedik.
Yeni Magento örneğini yeniden yükleyin ve veri taşıma aracına doğru bir şekilde veritabanı adı ekleyin
Veri Taşıma Aracı utf8 içindeki kaynaktan veri almaz.
İşte bu sorunun basit bir çözümü:
Düzenle: 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;
}
Deneyimlerime göre, yüklü örnek veriler var. Yani, aşağıdaki adımları yaptım.
Sonra göç edebilirim.
Aşağıdaki sql ile sorunum düzeltildi:
Bütünlük kısıtlaması ihlali: 1062 Anahtar için yinelenen '4-Images' girişi - Magento 2
delete from eav_attribute_group WHERE attribute_group_name = 'Images';
Öyleyse bir şey dene
delete from eav_attribute_group WHERE attribute_group_name = 'Home';