На странице “Отчёт о состоянии” сайта на движке Drupal решил навести порядок, убрать ошибки. Вот одна из них:
Детали статуса
Обнаружены ошибки
Определения сущности/поля
Несоответствие определений сущности и/или поля
В типе сущности и определениях поля обнаружены следующие изменения.
Paragraph
Поле paragraph.field_dvantages_content должно быть обновлено.
Поле paragraph.field_news_carousel должно быть обновлено.
Поле paragraph.field_views_block_content должно быть обновлено.
Не сразу понятно, как устранить эту ошибку, поэтому пришлось опять пользоваться поиском в интернет. Выяснил, что в Drupal есть модуль, который помогает в решении этой задачи. Он называется “Entity Update” и его использование связано с определённым риском. Поэтому не забываем сделать бэкап базы данных.
Итак, установил модуль “Entity Update”:
composer require drupal/entity_update
drush en entity_update -y
попытался выполнить команду
drush upe paragraph
и получил кучу ошибок при выполнении запроса к бд:
SELECT 1 AS expression
FROM paragraph_revision__field_dvantages_content
WHERE (field_dvantages_content_target_id IS NOT NULL)
OR (field_dvantages_content_display_id IS NOT NULL)
OR (field_dvantages_content_argument IS NOT NULL)
OR (field_dvantages_content_title IS NOT NULL)
OR (field_dvantages_content_data IS NOT NULL)
LIMIT 1 OFFSET 0;
Анализ запроса и таблицы paragraph_revision__field_dvantages_content показал, что ошибку вызывают 2 колонки: field_dvantages_content_argument и
field_dvantages_content_title, которых нет в базе.
Создал эти 2 пустые колонки:
ALTER TABLE `your_drupal_db`.paragraph_revision__field_views_block_content ADD field_views_block_content_argument varchar(255) CHARACTER SET ascii COLLATE ascii_general_ci DEFAULT NULL NULL COMMENT 'argument';
ALTER TABLE `your_drupal_db`.paragraph_revision__field_views_block_content ADD field_views_block_content_title varchar(255) CHARACTER SET ascii COLLATE ascii_general_ci DEFAULT NULL NULL COMMENT 'argument';
Потом снова выполняем:
drush upe paragraph
И выясняем, что аналогичная ситуация в с aragraph_revision__field_news_carousel. Поэтому тоже добавляем 2 колонки с _argument и _title. Такие же манипуляции проделываем и с paragraph_revision__field_views_block_content.
После всех этих запросов ошибка “определения сущности поля” исчезает.