Drupal 8:不匹配的实体 and/or 字段定义

Drupal 8: Mismatched entity and/or field definitions

在尝试了解为什么我的视图未显示时,我注意到日志中出现以下错误:

我认为无法从分类术语中删除 URL 别名。至少我找不到如何做到这一点。 但是,我已经检查了我所有的分类术语并删除了该字段的值。

我还使用 Pathauto 完成了以下操作:

此外,我检查了位于 admin/reports/fields 的报告,可以确认没有实体使用名为 URL 别名的字段。

我已经检查了每个内容项并确保它们具有以下设置(有人知道如何批量执行此操作吗?)。但错误仍然存​​在。

有人知道我该如何解决这个奇怪的错误吗?

我不完全确定这个命令的作用,但它修复了错误:

drush updb --entity-updates

https://www.drupal.org/node/2554097 以来,Drupal 核心中负责更新实体定义的魔法消失了。 drush updb --entiy-updates 是替代方案,但它不是灵丹妙药。相反,写入数据库更新更安全。

以顶部的屏幕截图为例,这是一个将删除这两个字段定义的数据库更新:

/**
 * Fix taxonomy and node field definitions.
 *
 */
function mymodule_update_8101() {
  $manager = \Drupal::entityDefinitionUpdateManager();

  if ($field = $manager->getFieldStorageDefinition('alias', 'node')) {
    $manager->uninstallFieldStorageDefinition($field);
  }

  if ($field = $manager->getFieldStorageDefinition('alias', 'term')) {
    $manager->uninstallFieldStorageDefinition($field);
  }
}

查看 https://www.drupal.org/node/2554097 中的其余可用方法,以便为每个场景编写数据库更新。

使用 entity_update 模块或 devel_entity_updates 模块