only in patch2: unchanged: --- a/src/EventSubscriber/FieldStorageSubscriber.php +++ b/src/EventSubscriber/FieldStorageSubscriber.php @@ -140,12 +140,18 @@ class FieldStorageSubscriber implements EventSubscriberInterface { } $tables[$table][] = $column; if ($entity_type->isRevisionable() && ($storage_definitions[$field_name]->isRevisionable())) { - if ($mapping->requiresDedicatedTableStorage($field_storage_definition)) { - $tables[$mapping->getDedicatedRevisionTableName($storage_definitions[$field_name])][] = $column; + try { + if ($mapping->requiresDedicatedTableStorage($storage_definitions[$field_name])) { + $tables[$mapping->getDedicatedRevisionTableName($storage_definitions[$field_name])][] = $column; + } + elseif ($mapping->allowsSharedTableStorage($storage_definitions[$field_name])) { + $revision_table = $entity_type->getRevisionDataTable() ?: $entity_type->getRevisionTable(); + $tables[$revision_table][] = $column; + $tables[$revision_table] = array_unique($tables[$revision_table]); + } } - elseif ($mapping->allowsSharedTableStorage($field_storage_definition)) { - $revision_table = $entity_type->getRevisionDataTable() ?: $entity_type->getRevisionTable(); - $tables[$revision_table][] = $column; + catch (SqlContentEntityStorageException $e) { + // Nothing to do if the revision table doesn't exist. } } }