Я пытался создать новый тип контента для своего сайта и выбрал имя поля («описание»), которое уже использовалось для других типов контента.
Проблема возникла при сохранении изменений, так как имя компьютера для поля уже существует для полей в других типах контента, но с другим типом поля. В других типах содержимого я использовал тип поля «Длинный текст» по умолчанию, но в этом случае я выбрал поле «Подробнее», так как оно лучше подходит для моего варианта использования.
Я заметил проблему и вернулся, чтобы изменить имя машины, но обнаружил, что создал два поля, и в одном из них было имя машины с проблемой, о которой я упоминал ранее.
При попытке удалить такое поле я перешел к admin/структура/типы/управление/my_custom_content_type/поля
и с помощью параметров пользовательского интерфейса выберите «Удалить».
Затем пользовательский интерфейс администратора показал мне экран, на котором отображаются изменения, которые я собираюсь внести, и когда я выбрал «Принять», мой сайт перенаправляет меня на пустую страницу с сообщением: «Веб-сайт обнаружил непредвиденную ошибку. Попробуйте. снова позже."
Когда я проверяю журналы, я вижу это сообщение об ошибке:
[06-Nov-2021 03:07:49] ПРЕДУПРЕЖДЕНИЕ: [pool www] child 2014 сказал в stderr: «ВНИМАНИЕ: сообщение PHP: Uncaught PHP Exception Drupal\Core\Database\DatabaseExceptionWrapper: «SQLSTATE[42S22]: столбец не найден : 1054 Неизвестный столбец 'field_description_teaser_value' в 'предложении where': SELECT 1 AS expression"
[06-Nov-2021 03:07:49] ВНИМАНИЕ: [pool www] ребенок 2014 сказал в stderr: "FROM"
[06-Nov-2021 03:07:49] ВНИМАНИЕ: [pool www] child 2014 сказал в stderr: "{node_revision__field_description} t"
[06-Nov-2021 03:07:49] ПРЕДУПРЕЖДЕНИЕ: [pool www] child 2014 сказал в stderr: «ГДЕ (field_description_teaser_value НЕ NULL) ИЛИ (field_description_teaser_format НЕ NULL) ИЛИ (field_description_hidden_value НЕ NULL) ИЛИ (field_description_hidden_format IS НЕ НОЛЬ)"
[06-Nov-2021 03:07:49] ПРЕДУПРЕЖДЕНИЕ: [pool www] child 2014 сказал в stderr: «LIMIT 1 OFFSET 0; Array»
[06-Nov-2021 03:07:49] ВНИМАНИЕ: [pool www] ребенок 2014 сказал в stderr: "("
[06-Nov-2021 03:07:49] ВНИМАНИЕ: [pool www] ребенок 2014 сказал в stderr: ")"
[06-Nov-2021 03:07:49] ПРЕДУПРЕЖДЕНИЕ: [pool www] child 2014 сказал в stderr: "" в строке /var/www/html/web/core/lib/Drupal/Core/Database/Connection.php 701"
06.11.2021, 03:07:49 [ошибка] 2010#2010: *21776 FastCGI отправлено в stderr: «Сообщение PHP: Uncaught PHP Exception Drupal\Core\Database\DatabaseExceptionWrapper: «SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец field_description_teaser_value в предложении where: SELECT 1 AS выражение
ОТ
{node_revision__field_description} т
ГДЕ (field_description_teaser_value НЕ NULL) ИЛИ (field_description_teaser_format НЕ NULL) ИЛИ (field_description_hidden_value НЕ NULL) ИЛИ (field_description_hidden_format НЕ NULL)
ПРЕДЕЛ 1 СМЕЩЕНИЕ 0; Множество
(
)
"в /var/www/html/web/core/lib/Drupal/Core/Database/Connection.php строка 701" при чтении заголовка ответа из восходящего потока, клиент: 172.18.0.6, сервер: запрос: "GET /admin/ структура/типы/управление/my_custom_content_type/fields/node.my_custom_content_type.field_description/storage HTTP/1.1", восходящий поток: "fastcgi://unix:/run/php-fpm.sock:", хост: "custom-site.ddev .site", реферер: "https://custom-site.ddev.site/admin/structure/types/manage/my_custom_content_type/fields"
При запуске phpmyadmin
, ни одно из имен столбцов, перечисленных в предложении where, не существует в node_revision__field_description
таблица, так как эти столбцы созданы для другого типа поля.
На данный момент я не мог создать какой-либо контент с использованием этого типа контента, и я хотел бы удалить его и начать с нуля, создав новый с лучшими именами машин и пытаясь избежать этих ошибок.
Мой вопрос: есть ли безопасный способ удалить тип контента с помощью SQL или drush?
Я попытался удалить его через интерфейс администратора, но это привело к той же ошибке, что и при попытке удалить поле.