Puncte:0

Migrate accessing source fields by name instead of by selector?

drapel in

I'm working on the MongoDB source plugin and I'm able to do the migration, but I have to make strange compromises. When defining the source fields, I have to set name the same as selector, like this.

fields:
  -
    name: _id
    label: 'Unique ID'
    selector: _id

That works, but if I decide to change field name and keep selector, the migration fails.

fields:
  -
    name: node_id
    label: 'Unique ID'
    selector: _id

I get this error.

'node_id' is defined as a source ID but has no value.

Why is that? Why is the source array accessed by name instead of by selector?

drapel in
Acest lucru depinde foarte mult de implementarea pluginului sursă. De exemplu, în sursa JSON a lui `migrate_plus`, `selectorul` este xpath către date și `name` este prescurtarea. Cu toate acestea, pentru `migrage_source_csv`, `name` trebuie să fie valoarea antetului. Are, de asemenea, `label`, dar nu `selector`. Deci, va trebui să cercetați implementarea sursei pentru a vedea ce proprietăți are nevoie și ce face.
Puncte:1
drapel ru

Puteți schimba numele câmpurilor sursă, dar nu trebuie să schimbați numele câmpurilor sursă utilizate ca ID-uri sursă.

sursă:
  câmpuri:
    -
      nume: _id
      etichetă: „ID unic”
      selector: _id
  ID-uri:
    _id: <-- aceasta este problema, nu puteți redenumi câmpurile sursă folosite aici
      tip: întreg

La prima migrare modulul creează un tabel de mapare migration_map_MIGRATION_ID pentru fiecare rând sursă la distanță <=> entitate locală. După aceea, nu mai puteți modifica numele câmpurilor sursă utilizate ca ID-uri sursă.

Singura modalitate de a evita acest lucru este o derulare completă, apoi ștergerea manuală a acelor tabele de migrare (inclusiv tabelul migration_message_MIGRATION_ID ) și apoi puteți începe din nou.

drapel in
@hundri mulțumesc pentru explicația asta. Cu toate acestea, parametrul sursă nu funcționează deloc, nici măcar pentru alte câmpuri. Din ceea ce a spus Joseph și din altă sursă, cred că acel plugin sursă trebuie să implementeze acea funcționalitate. Dar problema este că pot găsi instrucțiuni/tutorial despre cum să fac asta.
Puncte:0
drapel in

Selectoarele sunt gestionate de pluginuri pentru procesorul de date. Inițial am încercat să folosesc obiectul iterator furnizat de obiectul de colecție MongoDB. Funcționează, dar selectoarele nu sunt acceptate. Apoi am văzut cum este realizat procesorul de date personalizat în modulul Migrate plus, pentru analiza json și am făcut unul pe baza acestuia. Practic, folosesc iteratorul de colecție pentru a obține json complet și apoi procesorul meu de date personalizat funcționează cu acel json în mod similar cu procesorul de date json Migrate Plus.

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.