diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php index a90955c..07f7991 100644 --- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php +++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php @@ -299,7 +299,6 @@ public function getTableMapping(array $storage_definitions = NULL) { // @todo Provide automatic definitions for revision metadata fields in // https://www.drupal.org/node/2248983. $revision_metadata_fields = array_intersect([ - 'revision_uuid', 'revision_timestamp', 'revision_uid', 'revision_log', @@ -318,6 +317,9 @@ public function getTableMapping(array $storage_definitions = NULL) { // together with the entity ID and the revision ID as identifiers. $table_mapping->setFieldNames($this->baseTable, array_diff($all_fields, $revision_metadata_fields)); $revision_key_fields = array($this->idKey, $this->revisionKey); + if ($this->entityType->hasKey('revision_uuid')) { + $revision_key_fields[] = $this->entityType->getKey('revision_uuid'); + } $table_mapping->setFieldNames($this->revisionTable, array_merge($revision_key_fields, $revisionable_fields)); } elseif (!$revisionable && $translatable) { @@ -348,6 +350,9 @@ public function getTableMapping(array $storage_definitions = NULL) { $table_mapping->setFieldNames($this->dataTable, $data_fields); $revision_base_fields = array_merge(array($this->idKey, $this->revisionKey, $this->langcodeKey), $revision_metadata_fields); + if ($this->entityType->hasKey('revision_uuid')) { + $revision_base_fields[] = $this->entityType->getKey('revision_uuid'); + } $table_mapping->setFieldNames($this->revisionTable, $revision_base_fields); $revision_data_key_fields = array($this->idKey, $this->revisionKey, $this->langcodeKey);