Scopul meu este să import fișierul json în Drupal 8 folosind modulele Migrate (migrate_plus, migrate_tools).
Folosesc modulul Paragraph cu câmpuri precum Nume (referință la entitate) și compoziție (Număr-float). Și în nod, am titlu și alte câmpuri cu câmpul de referință Paragraf.
Fac import, uneori nodul va fi generat cu numele de paragraf necompletat, dacă resetez migrez și încerc să import din nou, jurnalele db dau următoarea eroare
Eroare: tipuri de operanzi neacceptate în Drupal\migrate\Plugin\migrate\process\SubProcess->transform() (linia 204 din C:\xampp\htdocs\drupal-migration\core\modules\migrate\src\Plugin\migrate\process \SubProcess.php) #0 C:\xampp\htdocs\drupal-migration\core\modules\migrate\src\MigrateExecutable.php(394): Drupal\migrate\Plugin\migrate\process\SubProcess->transform(Array, Object(Drupal\migrate_tools\MigrateBatchExecutable), Object(Drupal\migrate\Row), 'field_ingredien...')
dar nu îmi pot da seama de ce nu funcționează importul. Am petrecut mult timp pentru depanare.
Și, de asemenea, nodul nu este creat dacă ic_ref
valoarea este goală,
{
"lcia_id": 3,
„nume”: „Afine liofilizate”,
„greutate_netă”: 1,
„country”: „Regatul Unit”,
"ic_ref": ""
}
Configurație de migrare pentru ingrediente(config/install/migrate_plus.migration.icm_config_group_json_source_node)
element_selector: /date/ingrediente/
câmpuri:
-
nume: src_lcia_id
etichetă: „ID LCIA”
selector: lcia_id
-
nume: src_name
etichetă: „Numele ingredientului”
selector: nume
-
nume: src_ic_ref
etichetă: „ID paragraf IC”
selector: ic_ref
ID-uri:
src_lcia_id:
tip: întreg
proces:
titlu:
plugin: concat
sursă:
- nume_src
- constante/TITLE_SUFFIX
pseudo_mbe_ic_paragraph:
plugin: migration_lookup
migrare: icm_config_group_json_source_paragraph
sursa: src_ic_ref
field_ingredient_composition:
plugin: sub_proces
sursă:
- „@pseudo_mbe_ic_paragraph”
proces:
target_id: „0”
target_revision_id: „1”
destinaţie:
plugin: 'entity:node'
default_bundle: ingredient
dependențe_migrație:
necesar:
- icm_config_group_json_source_paragraph
opțional: { }
Configurație de migrare pentru ingrediente(config/install/migrate_plus.migration.icm_config_group_json_source_paragraph)
sursă:
element_selector: /date/compoziție
câmpuri:
-
nume: src_lcia_id
etichetă: „ID LCIA”
selector: lcia_id
-
nume: src_name
etichetă: „Numele ingredientului”
selector: nume
-
nume: src_composition
etichetă: „Compoziția ingredientelor”
selector: compoziție
ID-uri:
src_lcia_id:
tip: sfoară
proces:
field_ingredient_name: nume_src
field_ingredient_composition: src_composition
destinaţie:
plugin: 'entity_reference_revisions:paragraph'
default_bundle: ingredient_composition
dependențe_migrație: nul
date JSON
"date": {
"ingrediente": [
{
"lcia_id": 1,
"name": "Ovăz simplu (convențional)",
„greutate_netă”: 1,
„țara”: „Regatul Unit, Republica Irlanda”,
"ic_ref": 1
},
{
"lcia_id": 2,
"name": "Zahăr aromat",
„greutate_netă”: 1,
„country”: „Regatul Unit”,
„ic_ref”: 2
},
{
"lcia_id": 3,
„nume”: „Afine liofilizate”,
„greutate_netă”: 1,
„country”: „Regatul Unit”,
"ic_ref": ""
}
],
„compoziție”: [
{
"lcia_id": 1,
"nume": "Zahăr",
„compoziție”: 0,9398839137645107
},
{
"lcia_id": 2,
"nume": "Drojdie",
„compoziție”: 0,04975124378109454
}
]
}
}```