回答:
このエラーは、移行ツールが(整合性違反などにより)ロールバックせずにデータの転送に失敗し、再度実行された場合に発生します。「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;
}
私の経験では、サンプルデータがインストールされています。だから、私は次の手順を実行しました。
その後、移行できます。