diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index 083ce84ccf..5163799926 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -1352,7 +1352,7 @@ protected function saveToDedicatedTables(ContentEntityInterface $entity, $update
             ->condition('entity_id', $id)
             ->execute();
         }
-        if ($this->entityType->isRevisionable()) {
+        if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
           $this->database->delete($revision_name)
             ->condition('entity_id', $id)
             ->condition('revision_id', $vid)
@@ -1367,7 +1367,7 @@ protected function saveToDedicatedTables(ContentEntityInterface $entity, $update
         $columns[] = $table_mapping->getFieldColumnName($storage_definition, $column);
       }
       $query = $this->database->insert($table_name)->fields($columns);
-      if ($this->entityType->isRevisionable()) {
+      if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
         $revision_query = $this->database->insert($revision_name)->fields($columns);
       }
 
@@ -1396,7 +1396,7 @@ protected function saveToDedicatedTables(ContentEntityInterface $entity, $update
             $record[$column_name] = SqlContentEntityStorageSchema::castValue($attributes, $value);
           }
           $query->values($record);
-          if ($this->entityType->isRevisionable()) {
+          if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
             $revision_query->values($record);
           }
 
@@ -1413,7 +1413,7 @@ protected function saveToDedicatedTables(ContentEntityInterface $entity, $update
         if ($entity->isDefaultRevision()) {
           $query->execute();
         }
-        if ($this->entityType->isRevisionable()) {
+        if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
           $revision_query->execute();
         }
       }
@@ -1581,7 +1581,7 @@ public function onFieldStorageDefinitionDelete(FieldStorageDefinitionInterface $
       $this->database->update($table)
         ->fields(['deleted' => 1])
         ->execute();
-      if ($this->entityType->isRevisionable()) {
+      if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
         $this->database->update($revision_table)
           ->fields(['deleted' => 1])
           ->execute();
@@ -1755,7 +1755,7 @@ public function countFieldData($storage_definition, $as_bool = FALSE) {
 
     if ($table_mapping->requiresDedicatedTableStorage($storage_definition)) {
       $is_deleted = $storage_definition->isDeleted();
-      if ($this->entityType->isRevisionable()) {
+      if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
         $table_name = $table_mapping->getDedicatedRevisionTableName($storage_definition, $is_deleted);
       }
       else {
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
index a52f76ab41..eb76ecd6e6 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
@@ -697,7 +697,7 @@ public function onFieldStorageDefinitionDelete(FieldStorageDefinitionInterface $
       $table = $table_mapping->getDedicatedDataTableName($storage_definition);
       $new_table = $table_mapping->getDedicatedDataTableName($storage_definition, TRUE);
       $this->database->schema()->renameTable($table, $new_table);
-      if ($this->entityType->isRevisionable()) {
+      if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
         $revision_table = $table_mapping->getDedicatedRevisionTableName($storage_definition);
         $revision_new_table = $table_mapping->getDedicatedRevisionTableName($storage_definition, TRUE);
         $this->database->schema()->renameTable($revision_table, $revision_new_table);
@@ -717,7 +717,7 @@ public function onFieldStorageDefinitionDelete(FieldStorageDefinitionInterface $
 
       $dedicated_table_name = $table_mapping->getDedicatedDataTableName($deleted_storage_definition, TRUE);
       $dedicated_table_name_mapping[$table_mapping->getDedicatedDataTableName($deleted_storage_definition)] = $dedicated_table_name;
-      if ($this->entityType->isRevisionable()) {
+      if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
         $dedicated_revision_table_name = $table_mapping->getDedicatedRevisionTableName($deleted_storage_definition, TRUE);
         $dedicated_table_name_mapping[$table_mapping->getDedicatedRevisionTableName($deleted_storage_definition)] = $dedicated_revision_table_name;
       }
@@ -1644,7 +1644,7 @@ protected function deleteDedicatedTableSchema(FieldStorageDefinitionInterface $s
     if ($this->database->schema()->tableExists($table_name)) {
       $this->database->schema()->dropTable($table_name);
     }
-    if ($this->entityType->isRevisionable()) {
+    if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
       $revision_table_name = $table_mapping->getDedicatedRevisionTableName($storage_definition, $storage_definition->isDeleted());
       if ($this->database->schema()->tableExists($revision_table_name)) {
         $this->database->schema()->dropTable($revision_table_name);
@@ -1785,7 +1785,9 @@ protected function updateDedicatedTableSchema(FieldStorageDefinitionInterface $s
           // Check if the index exists because it might already have been
           // created as part of the earlier entity type update event.
           $this->addIndex($table, $real_name, $real_columns, $actual_schema[$table]);
-          $this->addIndex($revision_table, $real_name, $real_columns, $actual_schema[$revision_table]);
+          if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) {
+            $this->addIndex($revision_table, $real_name, $real_columns, $actual_schema[$revision_table]);
+          }
         }
       }
       $this->saveFieldSchemaData($storage_definition, $this->getDedicatedTableSchema($storage_definition));
@@ -2377,7 +2379,7 @@ protected function getDedicatedTableSchema(FieldStorageDefinitionInterface $stor
     $dedicated_table_schema = [$table_mapping->getDedicatedDataTableName($storage_definition) => $data_schema];
 
     // If the entity type is revisionable, construct the revision table.
-    if ($entity_type->isRevisionable()) {
+    if ($entity_type->isRevisionable() && $storage_definition->isRevisionable()) {
       $revision_schema = $data_schema;
       $revision_schema['description'] = $description_revision;
       $revision_schema['primary key'] = ['entity_id', 'revision_id', 'deleted', 'delta', 'langcode'];
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlFieldableEntityTypeListenerTrait.php b/core/lib/Drupal/Core/Entity/Sql/SqlFieldableEntityTypeListenerTrait.php
index f9a1a9c33f..1f6eeb801d 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlFieldableEntityTypeListenerTrait.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlFieldableEntityTypeListenerTrait.php
@@ -216,6 +216,7 @@ protected function copyData(EntityTypeInterface $entity_type, EntityTypeInterfac
         $this->handleEntityTypeSchemaUpdateExceptionOnDataCopy($entity_type, $original, $sandbox);
 
         // Re-throw the original exception with a helpful message.
+        watchdog_exception('yo', $e);
         $error_revision_id = $load_revisions ? ", revision ID: {$entity->getLoadedRevisionId()}" : '';
         throw new EntityStorageException("The entity update process failed while processing the entity type {$entity_type->id()}, ID: {$entity->id()}$error_revision_id.", $e->getCode(), $e);
       }
diff --git a/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php b/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
index 1f4cff3443..381015f51f 100644
--- a/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
+++ b/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
@@ -323,7 +323,8 @@ protected function addBundleField($type = 'string') {
     $definitions['new_bundle_field'] = FieldStorageDefinition::create($type)
       ->setName('new_bundle_field')
       ->setLabel(t('A new bundle field'))
-      ->setTargetEntityTypeId('entity_test_update');
+      ->setTargetEntityTypeId('entity_test_update')
+      ->setRevisionable(TRUE);
     $this->state->set('entity_test_update.additional_field_storage_definitions', $definitions);
     $this->state->set('entity_test_update.additional_bundle_field_definitions.test_bundle', $definitions);
   }
