Am o migrare care creează noduri dintr-un fișier CSV. Acesta nu este un export de pe alt site Drupal. Funcționează conform așteptărilor până când încerc să adaug nodurile migrate la un element de meniu specificat.
În următorul fișier de migrare, publications_create_nodes rulează cu succes. Pot crea elementele de meniu pentru fiecare nod cu următoarele.
proces:
nume_meniu:
plugin: default_value
default_value: „principal”
nid:
plugin: migration_lookup
migrare:
- publications_create_nodes
sursă_ids:
publications_create_nodes:
- id
„link/uri”:
plugin: concat
sursă:
- constante/cale
- „@nid”
titlu: titlu
mamă:
plugin: menu_link_parent
sursă:
- 462
- 'principal'
- „/publicații”
extern:
plugin: default_value
valoare_default: 0
extins:
plugin: default_value
valoare_default: 0
activat:
plugin: default_value
valoare_default: 1
langcode:
plugin: default_value
default_value: „ro”
Toate aceste noduri sunt adăugate la nivelul superior al meniului principal.
mamă:
plugin: menu_link_parent
sursă:
- 462
- 'principal'
- „/publicații”
Stările de care am nevoie sunt:
- plid
- nume_meniu
- parent_link_path
Am luat valoarea plid din baza de date.
SELECT UUID FROM menu_link_content WHERE id IN (SELECT ID FROM menu_link_content_data WHERE title = "publications");
Apoi am folosit rezultatul din asta în următoarea interogare SQL.
SELECT mlid FROM menu_tree WHERE id =('menu_link_content:e7e5dcf2-110a-41ca-928d-5ff353a311fd');
Valoarea plid așteptată în migrare este de la sursă, nu de la destinație. Deoarece nu am un element de meniu sursă, nu sunt sigur cum să adaug la linkul către un anumit meniu părinte.
În mod ideal, aș dori să am valoarea mlid de destinație ca parte a datelor CSV pentru a atribui fiecare nod generat unui element de meniu părinte existent.În caz contrar, voi avea aproximativ 600 de noduri la nivelul superior al meniului principal și voi afla unde le aparțin.