Рейтинг:0

«Несоответствие определений объекта и/или поля» после включения вспомогательного модуля

флаг in

Я установил модуль Rabbit Hole в Drupal 9. Меня сразу же встретило это сообщение на странице состояния:

Несоответствующие определения объектов и/или полей

Следующие изменения были обнаружены в типах объектов и определениях полей.
Пользователь
Необходимо установить поле действия «Кроличья нора».
Путь перенаправления «Кроличья нора». поле необходимо установить.
Необходимо установить поле кода ответа перенаправления Rabbit Hole.
Поле резервного действия перенаправления Rabbit Hole должно быть установлено.

Кажется, все говорят: запускайте обновления сущностей devel, но на самой странице модуля написано:

Цель этого модуля — предоставить быстрый способ применения обновлений схемы. при разработке новых типов сущностей и постепенно добавление/удаление/изменение типов объектов/определений полей.

Когда эти изменения являются частью официального выпуска (а не в рамках сеанса разработки кода), они должны абсолютно полагаться на Функции обновления БД, как описано в CR выше, потому что это единственный способ, которым процесс обновления схемы объекта может быть предсказуемым и надежный.

По этой причине этот модуль зависит от Devel и не предназначен для включены в производственных средах или используются при развертывании рабочие процессы, см. #3082442: Почему не предназначено для использования в рабочей среде среды? Больше подробностей.

Значит, его нельзя использовать или запускать в производстве? Его локальный запуск не приводит к видимым изменениям экспорта конфигурации. Итак, как бы вы сделали это в производственной базе данных?

Вместо этого люди говорят, что эти обновления должны происходить в перехватчике обновлений. Что это обозначает? Это бремя лежит на разработчике или на пользователе? Я видел это время от времени с предоставленными модулями и не понимаю, будут ли обновления сущности devel "исправлять" (правильно исправить) эту проблему, или если есть конкретный способ сделать это изменение.

4uk4 avatar
флаг cn
Вам не нужен обработчик обновлений для установки или удаления модуля, содержащего определение поля. Последняя проблема, связанная с этим, была решена в Drupal 8.5. См. https://www.drupal.org/project/drupal/issues/2282119. Хуки обновлений предназначены для изменений в уже установленных модулях.
sonfd avatar
флаг in
Удаляет ли запуск команды обновления сущности сообщение со страницы состояния локально?
Рейтинг:1
флаг cn

Вы не получаете «Несоответствующие определения объектов и/или полей» после установки/удаления модуля contrib, добавляющего базовые поля к существующим объектам.

Действия по воспроизведению:

  • композитор требует 'drupal/rabbit_hole:^1.0@beta'
  • включить основной модуль Rabbit Hole и подмодуль пользователей Rabbit Hole
  • таблица users_field_data содержит 4 новых поля
  • Страница статуса чистая
  • отредактируйте пользователя с индивидуальными настройками кроличьей норы, чтобы заполнить поля данными
  • проверить базу данных, данные сохранены
  • удалить модуль
  • поля перемещены из users_field_data в отдельные таблицы field_deleted_data_*
  • запустить хрон
  • field_deleted_data_* удаляются из базы данных

Если модуль не устанавливается/удаляется таким образом, выполните откат и сначала протестируйте его на локальной копии сайта, пока он не заработает. Не используйте инструмент разработки, такой как обновление сущностей разработки для производственных данных. Тем более для модуля, все еще находящегося в стадии бета-тестирования, изменяющего основные таблицы сущностей.

Kevin avatar
флаг in
Хотя это нормально? Или это конкретно для этого модуля?
4uk4 avatar
флаг cn
Точно такое поведение является нормальным для всех модулей, добавляющих базовые поля к существующим объектам.
Kevin avatar
флаг in
Странно... Интересно, что вызвало у меня это сообщение. Я просто помню, что включил его.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.