Câu trả lời:
Lỗi này xảy ra khi công cụ di chuyển không thể truyền dữ liệu (ví dụ do vi phạm tính toàn vẹn) mà không khôi phục và được chạy lại. Nó cố gắng tạo bộ thuộc tính "Migration_Default" và không thành công, vì nó đã có trong cơ sở dữ liệu.
Những gì bạn phải làm là:
1) Khôi phục cơ sở dữ liệu Magento 2.0 của bạn từ một bản sao mà bạn (hy vọng) đã tạo trước khi chạy công cụ di chuyển.
2) Chạy lại công cụ di chuyển và kiểm tra lỗi đầu tiên mà nó không thành công. Trong trường hợp của tôi, đó là:
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'home-1' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID'
3) Khắc phục sự cố (Tôi phải xóa thủ công một hàng trong DB).
Lặp lại các bước cho đến khi bạn xóa tất cả các lỗi và thấy thông báo âm thanh ngọt ngào:
Migration completed
Tôi tìm thấy giải pháp này đã giải quyết vấn đề này cho tôi https://github.com/magento/data-migration-tool/issues/235#issuecomment-321923437
Giải pháp là đổi tên tất cả các giá trị có chứa tên "Mặc định" trong trường "property_value_name" của bảng eav_attribution_set thành "Default_x" trong cơ sở dữ liệu Magento 1 và chạy di chuyển từ đầu.
Trong trường hợp của tôi, có 9 bản ghi với tên "Mặc định". Vì vậy, tôi đã đổi tên chúng thành Default_1 thành Default_9 và nó hoạt động hoàn hảo!
EAV_ATTRIBUTE_GROUP_ATTRIBUTE_SET_ID_ATTRIBUTE_GROUP_CODE
và đã khắc phục bằng cách tiếp cận tương tự:UPDATE eav_attribute_group SET attribute_group_name = CONCAT(attribute_group_name, "_", attribute_set_id) WHERE attribute_group_name = "General";
Trong trường hợp của tôi : Nó đã xảy ra với tôi và tôi đã phải nhập một bản sao lưu cơ sở dữ liệu magento 2 của mình trước khi tải lại di chuyển.
Trong trường hợp của bạn : Có thể bạn phải tải lại di chuyển dữ liệu lần thứ hai.
Để khắc phục sự cố này,
Bạn có thể làm điều đó thông qua ứng dụng hoặc giao diện truy vấn SQL của bạn.
DELETE FROM eav_attribute_set WHERE attribute_set_name != 'Default';
Kiểm tra kỹ với Cơ sở dữ liệu di chuyển Magento 2. Đôi khi, chúng tôi không thay đổi tên cơ sở dữ liệu trong công cụ di chuyển dữ liệu.
Cài đặt lại phiên bản Magento mới và thêm chính xác tên cơ sở dữ liệu vào công cụ di chuyển dữ liệu
Công cụ di chuyển dữ liệu không nhận được dữ liệu từ nguồn trong utf8.
Đây là một giải pháp đơn giản cho vấn đề này:
Biên tập: 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;
}
Theo kinh nghiệm của tôi, có dữ liệu mẫu được cài đặt. Vì vậy, tôi đã thực hiện các bước sau.
Sau đó, tôi có thể di chuyển.
Đã sửa lỗi của tôi với sql sau:
Vi phạm ràng buộc toàn vẹn: 1062 Mục nhập trùng lặp '4 hình ảnh' cho khóa - Magento 2
delete from eav_attribute_group WHERE attribute_group_name = 'Images';
Vậy hãy thử một cái gì đó
delete from eav_attribute_group WHERE attribute_group_name = 'Home';