Încercam să creez un nou tip de conținut pentru site-ul meu și am ales un nume de câmp („descriere”) care este deja folosit pentru alte tipuri de conținut.
Problema a apărut la salvarea modificărilor, deoarece numele mașinii pentru câmp există deja pentru câmpurile din alte tipuri de conținut, dar cu un tip de câmp diferit. În alte tipuri de conținut am folosit tipul implicit de câmp „Text lung”, dar în acest caz am ales „Citiți mai multe câmpuri”, deoarece se potrivea mai bine cu cazul meu de utilizare.
Am observat problema și m-am întors să schimb numele mașinii doar pentru a descoperi că am creat două câmpuri și unul dintre ele avea un nume de mașină cu problema pe care am menționat-o mai înainte.
Când am încercat să elimin un astfel de câmp, m-am dus la admin/structure/types/manage/my_custom_content_type/fields
și folosind opțiunile UI selectați „Șterge”.
Apoi, interfața de utilizare de administrator mi-a arătat un ecran în care afișează modificările pe care urmează să le fac și când am ales „Accept”, site-ul meu mă duce la o pagină goală cu mesajul: „Site-ul web a întâmpinat o eroare neașteptată. Încercați. din nou mai tarziu."
Când verific jurnalele, acesta este mesajul de eroare pe care îl văd:
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] child 2014 a spus în stderr: "OBSERVAȚI: mesaj PHP: Excepție PHP neprinsă Drupal\Core\Database\DatabaseExceptionWrapper: "SQLSTATE[42S22]: Coloana nu a fost găsită : 1054 Coloana necunoscută „field_description_teaser_value” în „where clause”: SELECT 1 AS expression”
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] copil 2014 a spus în stderr: „FROM”
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] child 2014 a spus în stderr: „{node_revision__field_description} t”
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] child 2014 a spus în stderr: „UNDE (field_description_teaser_value IS NOT NULL) SAU (field_description_teaser_format IS NOT NULL) SAU (field_description_hidden_value NU ESTE NULL (field_description_teaser_value) SAU NU NUL)"
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] child 2014 a spus în stderr: "LIMIT 1 OFFSET 0; Array"
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] copil 2014 a spus în stderr: „(”
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] copil 2014 a spus în stderr: ")"
[06-Nov-2021 03:07:49] AVERTISMENT: [pool www] child 2014 a spus în stderr: "" la linia /var/www/html/web/core/lib/Drupal/Core/Database/Connection.php 701"
2021/11/06 03:07:49 [eroare] 2010#2010: *21776 FastCGI trimis în stderr: „Mesaj PHP: Excepție PHP neprinsă Drupal\Core\Database\DatabaseExceptionWrapper: „SQLSTATE[42S22]: Coloana 1054 nu a fost găsită: Coloana necunoscută „field_description_teaser_value” în „where clause”: SELECT 1 expresie AS
DIN
{node_revision__field_description} t
UNDE (field_description_teaser_value NU ESTE NULL) SAU (field_description_teaser_format NU ESTE NULL) SAU (field_description_hidden_value NU ESTE NULL) SAU (field_description_hidden_format NU ESTE NULL)
LIMITĂ 1 OFFSET 0; Matrice
(
)
" la /var/www/html/web/core/lib/Drupal/Core/Database/Connection.php linia 701" în timp ce citiți antetul răspunsului din amonte, client: 172.18.0.6, server: , cerere: "GET /admin/ structure/types/manage/my_custom_content_type/fields/node.my_custom_content_type.field_description/storage HTTP/1.1”, în amonte: „fastcgi://unix:/run/php-fpm.sock:”, gazdă: „custom-site.ddev .site", referitor: "https://custom-site.ddev.site/admin/structure/types/manage/my_custom_content_type/fields"
La lansare phpmyadmin
, niciunul dintre numele coloanelor enumerate în clauza where există în node_revision__field_description
tabel, deoarece acele coloane sunt create pentru un tip de câmp diferit.
În acest moment, nu am putut crea niciun conținut folosind acest tip de conținut și aș dori să-l elimin și să încep de la zero prin crearea unuia nou cu nume de mașini mai bune și încercând să evit aceste erori.
Întrebarea mea este: există o modalitate sigură de a elimina tipul de conținut folosind SQL sau drush?
Am încercat să-l elimin prin interfața de administrare, dar a rezultat cu aceeași eroare ca atunci când încerc să elimin câmpul.