Commit b8dbaf54 authored by Tobias Bähr's avatar Tobias Bähr
Browse files

Issue #3318893: Mismatched entity and/or field definitions after update to 4.1.0

parent 7968e86e
Loading
Loading
Loading
Loading
+16 −8
Original line number Diff line number Diff line
@@ -6,19 +6,27 @@
 */

/**
 * Rename PET table to pets for consistency.
 * Moved to pet_update_8403().
 */
function pet_update_8401() {
  \Drupal::database()->schema()->renameTable('pet_field_data', 'pets_field_data');
}

/**
 * Update PET entity data_table annotation.
 * Moved to pet_update_8403().
 */
function pet_update_8402() {
  \Drupal::service('entity_field.manager')->clearCachedFieldDefinitions();
  $key_value_store_definition = \Drupal::keyValue('entity.definitions.installed');
  $storage_definitions = $key_value_store_definition->get('pet.entity_type');
  $storage_definitions->set('data_table', 'pets_field_data');
  $key_value_store_definition->set('pet.entity_type', $storage_definitions);
}

/**
 * Rename entity data_table to pets_field_data.
 */
function pet_update_8403(&$sandbox) {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  /** @var \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface $last_installed_schema_repository */
  $last_installed_schema_repository = \Drupal::service('entity.last_installed_schema.repository');
  $entity_type = $definition_update_manager->getEntityType('pet');
  $entity_type->set('data_table', 'pets_field_data');
  $original_storage_definitions = $last_installed_schema_repository
    ->getLastInstalledFieldStorageDefinitions('pet');
  $definition_update_manager->updateFieldableEntityType($entity_type, $original_storage_definitions, $sandbox);
}