diff --git a/dynamic_entity_reference.install b/dynamic_entity_reference.install index 0a4870b..907208d 100644 --- a/dynamic_entity_reference.install +++ b/dynamic_entity_reference.install @@ -67,7 +67,12 @@ function dynamic_entity_reference_update_8001() { $schema->changeField($table, $type_column, $type_column, $type_spec); $revision_table = NULL; if ($entity_type->isRevisionable() && $field_storage_definition->isRevisionable()) { - $revision_table = $table_mapping->getDedicatedRevisionTableName($field_storage_definition); + if ($table_mapping->requiresDedicatedTableStorage($field_storage_definition)) { + $revision_table = $table_mapping->getDedicatedRevisionTableName($field_storage_definition); + } + elseif ($table_mapping->allowsSharedTableStorage($field_storage_definition)) { + $revision_table = $entity_type->getRevisionDataTable() ?: $entity_type->getRevisionTable(); + } $schema->changeField($revision_table, $column, $column, $spec); $schema->changeField($revision_table, $type_column, $type_column, $type_spec); } diff --git a/src/EventSubscriber/FieldStorageSubscriber.php b/src/EventSubscriber/FieldStorageSubscriber.php index 8717f17..a8eef23 100644 --- a/src/EventSubscriber/FieldStorageSubscriber.php +++ b/src/EventSubscriber/FieldStorageSubscriber.php @@ -140,7 +140,13 @@ class FieldStorageSubscriber implements EventSubscriberInterface { } $tables[$table][] = $column; if ($entity_type->isRevisionable() && ($storage_definitions[$field_name]->isRevisionable())) { - $tables[$mapping->getDedicatedRevisionTableName($storage_definitions[$field_name])][] = $column; + if ($mapping->requiresDedicatedTableStorage($field_storage_definition)) { + $tables[$mapping->getDedicatedRevisionTableName($storage_definitions[$field_name])][] = $column; + } + elseif ($mapping->allowsSharedTableStorage($field_storage_definition)) { + $revision_table = $entity_type->getRevisionDataTable() ?: $entity_type->getRevisionTable(); + $tables[$revision_table][] = $column; + } } } $new = [];