Get Social

Ошибка “определения сущности поля” при обновлении Drupal 9

На странице “Отчёт о состоянии” сайта на движке 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.

После всех этих запросов ошибка “определения сущности поля” исчезает.

Post a comment