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 模块
在尝试了解为什么我的视图未显示时,我注意到日志中出现以下错误:
我认为无法从分类术语中删除 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 模块