Puncte:1

Utilizați derivatul în Drupal Migration yml

drapel in

Încerc să folosesc cheia derivată într-un yml de migrare pentru a construi dinamic migrații pentru fiecare pachet al unui tip de entitate (Drupal 9).

Citesc acest și încerc să folosesc cheia derivată pentru a indica o clasă Deriver în migrarea mea. Cu toate acestea, se pare că cheia derivată este pur și simplu ignorată.

Mai este ceva ce trebuie să fac în afară de utilizarea cheii derivate și de a crea o clasă derivată care moștenește de la Drupal\Component\Plugin\Derivative\DeriverBase?

Acesta este yml de migrare:

id: roluri_persoană
etichetă: import 
derivat: Drupal\my_module\PersonRoleImportDeriver
migration_group: grupul_meu
sursă:
  plugin: url
  data_fetcher_plugin: http
  data_parser_plugin: xml
  URL-uri: public://this.xml
  câmpuri:
    -
      nume: nume_poziție
      etichetă: numele rolului persoanei
      selector: funktion
  ID-uri:
    nume_poziție:
      tip: sfoară
destinaţie:
  plugin: 'entity:my_entity'
proces:
  Nume:
    -
      plugin: skip_on_empty
      metoda: rând
      sursa: nume_poziție
      mesaj: „Rolul de persoană sursă gol”
    -
      plugin: make_unique_entity_field
      entity_type: my_entity
      migrat: adevărat
      numele domeniului
Puncte:1
drapel ph

Este un plugin, așa că trebuie să respectați structura directorului pluginului și spațiul de nume.

Clasa ta ar trebui să fie în modulul_meu/src/Plugin/migrate și au spațiul de nume Drupal\modulul_meu\Plugin\migrare.

Stefan Korn avatar
drapel in
Hm, cred că un Deriver nu este un plugin? Nu are nicio adnotare totuși. Oricum, dacă pun Deriver-ul în folderul de pluginuri, se pare că nu a fost apelat.
Lambic avatar
drapel ph
Deci, clasa dvs. de derivatoare implementează getDerivativeDefinitions() și acea metodă nu este apelată niciodată?
Stefan Korn avatar
drapel in
Da, asta pare să fie problema.
Lambic avatar
drapel ph
Nu sunt sigur de ce ar fi asta, folosesc același model. Clasa dvs. include MigrationDeriverTrait?
Stefan Korn avatar
drapel in
se pare că este vorba despre locul în care se află configurația yml pentru migrare. Dacă locuiește în folderul config/install, derivatul nu va fi prins, dar dacă locuiește în folderul migrații, va funcționa. Clasa Deriver în sine ar putea locui oriunde în spațiul de nume. În prezent, înțeleg diferența dintre config/install și migrare în acest caz.
Lambic avatar
drapel ph
Ah, interesant, am trecut la utilizarea directorului de migrații destul de devreme.

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.