Puncte:0

Cum să eliminați o actualizare falsă de entitate?

drapel id

Ceva (nu sunt sigur ce) a introdus ceea ce pare a fi o actualizare falsă de entitate în site-ul meu Drupal 9. Aș dori să șterg actualizarea, astfel încât să nu mi se mai solicite să o aplic.

> drush dentup
tip de entitate utilizator:
Câmpul ID utilizator trebuie actualizat.

 Doriți să rulați toate actualizările în așteptare? (da/nu) [da]:
 > da

În linia 1842 SqlContentEntityStorageSchema.php:

  Stocarea SQL nu poate schimba schema pentru un câmp existent (uid în user
   entitate) cu date.

Când elimin toate datele utilizatorului și încerc din nou actualizarea:

> drush dentup
tip de entitate utilizator:
Câmpul ID utilizator trebuie actualizat.

 Doriți să rulați toate actualizările în așteptare? (da/nu) [da]:
 > da

În linia 50 ExceptionHandler.php:

  SQLSTATE[23000]: Încălcarea constrângerii de integritate: 1062 Duplicați intrarea „0” pentru cheia „PRIMARY”:
  ALTER TABLE "utilizatori" ADD `uid` INT nesemnat NOT NULL, ADD PRIMARY KEY (`uid`); matrice ()

În linia 116 StatementWrapper.php:

  SQLSTATE[23000]: Încălcarea constrângerii de integritate: 1062 Duplicați intrarea „0” pentru cheia „PRIMARY”

The utilizatorii masa are deja un uid coloana care este cheia sa primară și această actualizare a entității va eșua întotdeauna.

Unde sunt stocate actualizările entităților? Există vreo modalitate de a elimina în siguranță această actualizare din locația de stocare?

Puncte:4
drapel cn

Acest lucru pare foarte ciudat, cum s-a schimbat schema de entitate pentru câmpul uid?

Deci, spui că tabelele bazei de date utilizatori sunt aceleași ca în orice altă instalare Drupal?

Ce este atunci cu schemele de stocare instalate, pentru tabele

\Drupal::keyValue('entity.storage_schema.sql')->get('user.entity_schema_data')

și câmpul?

\Drupal::keyValue('entity.storage_schema.sql')->get('user.field_schema_data.uid')

Dacă acesta este singurul lucru greșit, puteți seta datele corecte:

\Drupal::keyValue('entity.storage_schema.sql')->set('user.entity_schema_data', $data)

Drupal ține evidența definițiilor entităților instalate față de cele definite în cod. Deci, orice a făcut codul necunoscut, ar putea fi mai multe daune.

drapel id
Valoarea tabelului din instanța mea de dezvoltare a fost identică cu valoarea corespunzătoare din DB pentru o nouă instalare D9. Cu toate acestea, a existat o diferență între valorile câmpului. Am actualizat valoarea dev pentru `user.field_schema_data.uid` pentru a se potrivi cu valoarea de instalare proaspătă și acest lucru a eliminat eroarea raportului de stare. Vă mulțumim, [4k4](https://drupal.stackexchange.com/users/47547/4k4), pentru sugestie.
drapel id
Întrebările cu privire la modul în care a fost introdusă diferența și ce ar putea pândi în instanța mea de dezvoltare, rămân. Voi fi atent pentru alte erori.

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.