Risoluzione dei problemi relativi allo strumento di migrazione dei dati
Questo articolo fornisce soluzioni per gli errori che possono verificarsi quando si esegue lo strumento di migrazione dati.
Descrizione description
Ambiente interessato
- Adobe Commerce versione 1
- Adobe Commerce versione 2
Problema/Sintomi
- Documenti/campi Source non mappati
- Classe non mappata nel record
- Il vincolo di chiave esterna ha esito negativo
- Duplicati nelle riscritture URL
- Mancata corrispondenza di entità
- Deltalog non è installato
Risoluzione resolution
Documenti/campi Source non mappati
Messaggi di errore
- Documenti Source non mappati:
<EXTENSION_TABLE> - I campi Source non sono mappati. Documento:
<EXTENSION_TABLE>. Campi:<EXTENSION_FIELD>
In rari casi, il messaggio potrebbe menzionare Destination documents o Destination fields invece di quelli sorgente.
Causa
Alcune entità Adobe Commerce versione 1, nella maggior parte dei casi provenienti da estensioni, non esistono nel database Adobe Commerce versione 2.
Questo messaggio viene visualizzato perché lo strumento di migrazione dati esegue test interni per verificare che le tabelle e i campi siano coerenti tra i database source (Adobe Commerce 1) e destination (Adobe Commerce 2).
Soluzioni possibili
-
Installa le estensioni Adobe Commerce 2 corrispondenti da Commerce Marketplace. Se i dati in conflitto provengono da un’estensione che aggiunge i propri elementi della struttura del database, la versione Adobe Commerce 2 della stessa estensione può aggiungere tali elementi al database di destinazione (Adobe Commerce 2), risolvendo così il problema.
-
Utilizzare l’argomento
-adurante l’esecuzione dello strumento per risolvere automaticamente gli errori e impedire l’interruzione della migrazione. -
Configura lo strumento per ignorare i dati problematici. Per ignorare le entità di database, aggiungere il tag
<ignore>a un’entità nel filemap.xml, come segue:code language-none ... <source> <document_rules> ... <!-- Ignore `sales_flat_invoice_grid` table --> <ignore> <document>sales_flat_invoice_grid</document> </ignore> <!-- Ignore `address_id` field of `sales_flat_order_address` table --> <ignore> <field>sales_flat_order_address.address_id</field> </ignore> ... </document_rules> </source> ...
Avviso:
Prima di ignorare le entità tramite il file mappa o utilizzando l’opzione -a, accertati di non aver bisogno dei dati interessati nell’archivio di Adobe Commerce 2.
Classe non mappata nel record
Messaggi di errore
L’estensione/nome_classe < della classe > non è mappata nel record < attribute_id=196>
Causa
Impossibile trovare una classe da Adobe Commerce 1 codebase nella base di codice di Adobe Commerce 2 durante il passaggio di migrazione EAV nella documentazione per gli sviluppatori. Nella maggior parte dei casi, la classe mancante appartiene a un’estensione extension.
Soluzioni possibili
- Installa l’estensione Adobe Commerce 2 corrispondente.
- Ignora l’attributo che causa il problema. Per questo, aggiungere l’attributo al gruppo
ignorenel fileeav-attribute-groups.xml.dist. - Aggiungere il mapping di classe utilizzando il file
class-map.xml.dist.
Errore vincolo di chiave esterna
Testo messaggio di errore
Il vincolo della chiave esterna < KEY_NAME> non riesce nel database di origine. ID record orfani: < id_1> , < id_2> da < child_table> .< field_id> non contiene record a cui si fa riferimento in < parent_table>
Causa
Record di database mancanti in parent_table a cui punta field_id di child_table.
Soluzione possibile
Eliminare i record da child_table, se non sono necessari.
Per mantenere i record, disabilitare Data Integrity Step modificando config.xml dello strumento di migrazione dati.
Duplicati nelle riscritture URL
There are duplicates in URL rewrites:
Request path: towel.html Store ID: 2 Target path: catalog/product/view/id/10
Request path: towel.html Store ID: 2 Target path: catalog/product/view/id/12
Causa
Target path in una riscrittura URL deve essere specificato da una coppia univoca di Request path + Store ID. Questo errore segnala due voci che utilizzano la stessa coppia Request path + Store ID con due valori Target path diversi.
Soluzione possibile
Abilita l’opzione auto_resolve_urlrewrite_duplicates nel file config.xml.
Questa configurazione aggiunge una stringa hash ai record in conflitto di riscritture URL e mostra il risultato della risoluzione nell’interfaccia della riga di comando.
Mancata corrispondenza di entità
Messaggio di errore
Mancata corrispondenza delle entità nel documento: < DOCUMENT> Source: < COUNT_ITEMS_IN_SOURCE_TABLE> Destinazione: < COUNT_ITEMS_IN_DESTINATION_TABLE>
Causa
L’errore si verifica durante il passaggio Controllo volume. Ciò significa che il conteggio dei record del database Adobe Commerce 2 del documento non è lo stesso di Adobe Commerce 1.
I record mancanti si verificano quando un cliente effettua un ordine durante la migrazione.
Soluzione possibile
Eseguire lo strumento di migrazione dati in modalità Delta per trasferire le modifiche incrementali.
Deltalog non installato
Messaggio di errore
Deltalog per < TABLE_NAME> non è installato
Causa
Questo errore si verifica durante la migrazione incrementale (nella documentazione per gli sviluppatori) delle modifiche ai dati. Ciò significa che non sono state trovate le tabelle di deltalog (con prefisso m2_cl_*) nel database di Adobe Commerce 1. Lo strumento installa queste tabelle durante la migrazione dei dati (nella documentazione per gli sviluppatori), nonché i trigger del database che tengono traccia delle modifiche e riempiono le tabelle del catalogo.
Uno dei motivi dell’errore potrebbe essere che si sta tentando di eseguire la migrazione da una copia dell’archivio Adobe Commerce 1 live, non dall’archivio live stesso. Quando crei una copia da un archivio Adobe Commerce 1 live che non è mai stata migrata, la copia non contiene i trigger e le tabelle di dialogo aggiuntive necessarie per completare una migrazione delta, pertanto la migrazione non riesce. Lo strumento di migrazione dei dati NON effettua confronti tra il database di AC1 e AC2 per migrare le differenze. Per eseguire le migrazioni delta successive, lo strumento utilizza invece le tabelle triggers e deltalog installate durante la prima migrazione. In questo caso, la tua copia del database live di Adobe Commerce 1 non conterrà i trigger e le tabelle di deltalog utilizzati dallo strumento di migrazione dei dati per eseguire una migrazione.
Soluzione possibile
Per risolvere i problemi di migrazione, è consigliabile eseguire il test del processo di migrazione da una copia del database Adobe Commerce 1. Dopo aver risolto i problemi sulla copia, riavvia il processo di migrazione dal database live Adobe Commerce 1. Ciò contribuirà a garantire un processo di migrazione agevole.
Lettura correlata
Best practice per la modifica delle tabelle del database nel playbook di implementazione di Commerce