După actualizarea de la Drupal v9.1.7 la v9.2.0, pe o mulțime de noduri, machetele personalizate de înlocuire a constructorului de layout au fost resetate la aspectul implicit, rezultând o pierdere masivă de date. Pentru a înrăutăți lucrurile, asta s-a întâmplat doar pe live și nu pe scenă și a fost observat doar câteva zile mai târziu. Nu știu ce a cauzat problema, clientul este destul de supărat și trebuie să restabilesc rapid și selectiv machetele de suprascriere dintr-un instantaneu DB cu o seară înainte de actualizare (și să las restul datelor neatins).
Pana acum stiu doua lucruri:
- Toate nodurile afectate au a
nod.schimbat
marca temporală care se potrivește cu momentul implementării actualizării.
- Pe toate nodurile afectate
node__layout_builder_layout
a fost decupat într-o singură secțiune (la fel ca aspectul implicit, fără înlocuire)
- Pe toate nodurile afectate se pierde doar ultima revizuire, fără a genera un nou ID de revizuire.
- Aspectele de anulare constau, de obicei, în personalizate, nereutilizabile
block_content
blocuri. Toate blocurile par să mai existe în DB.
As vrea sa stiu:
- Cum pot verifica dacă un nod are un aspect de suprascriere sau folosește aspectul implicit al constructorului de aspect (dacă este posibil cu o interogare SQL simplă, fără PHP)
- Ce altceva trebuie să refac, în afară de
node__layout_builder_layout
tabel (presupunând că blocurile de conținut personalizate utilizate de layout-urile de înlocuire par să mai existe) pentru a restabili aspectul de înlocuire a unui nod
- Pot să folosesc SQL cu siguranță
unde a <> b
sau SQL unde a = b
cu A
și b
fiind conținutul blob al node__layout_builder_layout.layout_builder__layout_section
?