X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Flib%2FDrupal%2FCore%2FEntity%2FSql%2FSqlContentEntityStorageSchemaConverter.php;fp=web%2Fcore%2Flib%2FDrupal%2FCore%2FEntity%2FSql%2FSqlContentEntityStorageSchemaConverter.php;h=2d3edfc6d49a61e74a61d237b45cb3e12fd3ffb3;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=60712eeb2160b66213a60c490a132f5baee72ab0;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php b/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php index 60712eeb2..2d3edfc6d 100644 --- a/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php +++ b/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php @@ -245,6 +245,7 @@ class SqlContentEntityStorageSchemaConverter { $original_base_table = $original_entity_type->getBaseTable(); $revision_id_key = $temporary_entity_type->getKey('revision'); + $revision_default_key = $temporary_entity_type->getRevisionMetadataKey('revision_default'); $revision_translation_affected_key = $temporary_entity_type->getKey('revision_translation_affected'); // If 'progress' is not set, then this will be the first run of the batch. @@ -288,6 +289,10 @@ class SqlContentEntityStorageSchemaConverter { // Set the revision ID to be same as the entity ID. $entity->set($revision_id_key, $entity_id); + // We had no revisions so far, so the existing data belongs to the + // default revision now. + $entity->set($revision_default_key, TRUE); + // Set the 'revision_translation_affected' flag to TRUE to match the // previous API return value: if the field was not defined the value // returned was always TRUE. @@ -380,6 +385,23 @@ class SqlContentEntityStorageSchemaConverter { } $updated_storage_definitions[$entity_type->getKey('revision')] = $revision_field; + // Add the default revision flag field. + $field_name = $entity_type->getRevisionMetadataKey('revision_default'); + $storage_definition = BaseFieldDefinition::create('boolean') + ->setName($field_name) + ->setTargetEntityTypeId($entity_type->id()) + ->setTargetBundle(NULL) + ->setLabel(t('Default revision')) + ->setDescription(t('A flag indicating whether this was a default revision when it was saved.')) + ->setStorageRequired(TRUE) + ->setTranslatable(FALSE) + ->setRevisionable(TRUE); + + if ($update_cached_definitions) { + $this->entityDefinitionUpdateManager->installFieldStorageDefinition($field_name, $entity_type->id(), $entity_type->getProvider(), $storage_definition); + } + $updated_storage_definitions[$field_name] = $storage_definition; + // Add the 'revision_translation_affected' field if needed. if ($entity_type->isTranslatable()) { $revision_translation_affected_field = BaseFieldDefinition::create('boolean')