Puncte:1

Cum pot migra valorile dintr-un câmp de referință pentru termeni de taxonomie D7 cu mai multe valori într-un câmp D9?

drapel in

Am o migrare de nod folosind d7_node plugin sursă.

Încerc să migrez valorile unui câmp de referință pentru termeni de taxonomie cu mai multe valori într-un câmp de referință pentru taxonomie cu mai multe valori în D9. Există o migrare separată pentru a importa termenii taxonomiei care funcționează excelent.

În migrarea nodului meu, am ceva de genul:

field_my_tax_field:
  plugin: migration_lookup
  migrare: my_taxonomy_migration_id
  sursa: field_my_d7_tax_field

Cu toate acestea, aceasta aruncă o excepție și migrarea eșuează. Când introduc un punct de întrerupere Drupal\migrate\Plugin\migrate\process\MigrationLookup::transform() (unde se aruncă excepția), pot vedea că valoarea transmisă este o matrice, dar pluginul de căutare vrea o valoare scalară. Matricea transmisă este ceva de genul:

['target_id' => 123]

Cu aceste informații, pot face asta să funcționeze actualizându-mi configurația de migrare cu ceva de genul:

field_my_tax_field:
  - plugin: callback
    apelabil: resetare
    sursa: field_my_d7_tax_field
  - plugin: migration_lookup
    migrare: my_taxonomy_migration_id
    

Folosind reset() ca asta se simte liber. Și pare ciudat că acest pas suplimentar este necesar, acesta pare a fi cazul de utilizare #1 pentru funcția migration_lookup.

Ce îmi lipsește? Cum pot face asta într-un mod mai bun?

Puncte:1
drapel in

O opțiune este să utilizați Drupal\migrate\Plugin\migrate\process\SubProcess plugin (sub_proces):

Rulează o matrice de matrice prin propria conductă de proces.

Pluginul sub_process acceptă o matrice de matrice asociative și le rulează pe fiecare prin propria conductă de proces, producând o matrice asociativă nou cu cheie de valori transformate.

field_my_tax_field:
  plugin: sub_proces
  sursa: field_my_d7_tax_field
  proces:
    target_id: 
      plugin: migration_lookup
      migrare: my_taxonomy_migration_id
      sursa: target_id

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.