Dies ist eine Drupal 8 (Beta 15) -Seite, grundlegende, wenige Inhaltstypen. Auf der Statusberichtsseite heißt es:
Entity/field definitions
Mismatch detected
Mismatched entity and/or field definitions.
Nach einer Untersuchung stellte sich heraus, dass dies durch einige Felder verursacht wird. Das Drupal\Core\Entity\EntityDefinitionUpdateManager::getChangeList()
meldet sie, weil ihre ursprüngliche Speicherdefinition in der key_value
Tabelle für die Spaltensammlung fehlt :entity.storage_schema.sql
(Der config.entity.key_store.field_config
Eintrag column-collection = ist für alle Felder vorhanden.)
Meine Frage ist - wie können wir das beheben? Die gesamte Konfiguration wird in Konfigurationsdateien (Staging-Verzeichnis) gespeichert - einschließlich aller Felder für XML-Dateien. Der Konfigurationsmanager meldet keinen Unterschied, der Export behält die Dateien bei und der Import ändert nichts. drush updb meldet auch keine Updates.
Gibt es einen Befehl, den wir in einem Update-Hook aufrufen sollten, um diese Speicherinformationen zu synchronisieren / zu registrieren? Irgendeine Idee?
Antworten:
Es hängt davon ab, was genau von getChangedList () gemeldet wird. Was jedoch passiert, ist, dass ein Modul das Entitätsschema mit folgenden Elementen aktualisieren muss:
Alles, was Sie wissen müssen, finden Sie im Änderungsdatensatz: https://www.drupal.org/node/2554097
Es werden auch Anstrengungen unternommen, um zusätzliche Informationen auf der Statusseite bereitzustellen: https://www.drupal.org/node/2554911
quelle
$fieldStorages = \Drupal::entityManager()->getFieldStorageDefinitions($entityTypeID);
und\Drupal::entityDefinitionUpdateManager() ->installFieldStorageDefinition($fieldName, 'node', 'node', $fieldStorages[$fieldName]);