Puncte:0

Actualizați câmpul fără salvarea nodului

drapel ve

Sunt începător în Drupal, aș dori să inserez o valoare într-un câmp de nod. Dar, în loc de un nod->save(), vreau să evit orice cârlig de presare și să-l inserez direct folosind interogarea sql. Am entity_id de inserat și în coloana field_NAME_value, acesta este id-ul nodului? Sau cum obțin asta? Sau există o modalitate de a salva un nod fără a apela presave? Mulțumiri

drapel cn
Cu cel mai mare respect, dacă trebuie să întrebați (adică nu sunteți în stare să înțelegeți/intuiți) care sunt coloanele din aceste tabele, probabil că veți sfârși prin a sparge ceva manipulând manual baza de date. Vă poate ajuta să vă întoarceți problema și să explicați ce este în neregulă cu cârligele de presalvare care rulează în primul rând. În schimb, s-ar putea să reușești să oprești acest comportament, într-o manieră mai elegantă și mai sigură pentru viitor.
Jaypan avatar
drapel de
Trebuie să fiu de acord cu Clive. Acest lucru este periculos, o practică proastă și omite verificările API. De ce nu vrei să salvezi nodul?
jacksparrow avatar
drapel ve
@Clive Mulțumesc băieți. De fapt, am o operațiune în lot (mai mult de 20.000 de noduri) care expiră, există câteva salvari de cârlig care sunt apelate și întregul proces este lent, așa că pentru a accelera acest lucru, am vrut să încerc să actualizez direct db-ul, ceea ce ar face lucrurile mai repede. .
drapel cn
Aș fi tentat să accept că lotul va fi lent și să mă uit la a-l împărți în bucăți mai mici - nu ar trebui să obții un timeout pentru a rula o operațiune pe lot, de aceea există în primul rând. Dacă micșorați numărul de noduri per operațiune, s-ar putea chiar să descoperiți că întregul proces se execută oricum mai rapid în ansamblu, deoarece nu veți folosi atât de multe resurse pe cerere.
jacksparrow avatar
drapel ve
@Clive mulțumesc pentru gândurile tale, sunt utile. Când rulați lotul în timpul unui hook_deploy , există un timeout după 14400s care vine de la Drush (este setat în drush.php) și, de asemenea, un timeout al bazei de date, nu știu cum să suprascriu acest lucru, motiv pentru care încercam să reduc timpul pentru întregul proces. Cred că voi crea un cron care va rula de 4 ori lotul și va împărți numărul total de noduri în 4
drapel cn
Oh, văd, acest lucru poate fi de asemenea util atunci: https://drupal.stackexchange.com/questions/280846/how-to-change-the-drush-default-timeout-of-14400
jacksparrow avatar
drapel ve
@Clive mulțumesc pentru ajutor!

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.