You are here

function media_update_8700 in Drupal 8

Set the 'owner' entity key and update the field.

File

core/modules/media/media.install, line 233
Install, uninstall and update hooks for Media module.

Code

function media_update_8700() {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = $definition_update_manager
    ->getEntityType('media');
  $database = \Drupal::database();
  if (\Drupal::entityTypeManager()
    ->getStorage('media') instanceof SqlEntityStorageInterface) {
    if ($database
      ->schema()
      ->tableExists($entity_type
      ->getDataTable())) {
      $database
        ->update($entity_type
        ->getDataTable())
        ->fields([
        'uid' => 0,
      ])
        ->isNull('uid')
        ->execute();
    }
    if ($database
      ->schema()
      ->tableExists($entity_type
      ->getRevisionDataTable())) {
      $database
        ->update($entity_type
        ->getRevisionDataTable())
        ->fields([
        'uid' => 0,
      ])
        ->isNull('uid')
        ->execute();
    }
  }
  $keys = $entity_type
    ->getKeys();
  $keys['owner'] = 'uid';
  $entity_type
    ->set('entity_keys', $keys);
  $definition_update_manager
    ->updateEntityType($entity_type);
  $definition_update_manager
    ->updateFieldStorageDefinition($definition_update_manager
    ->getFieldStorageDefinition('uid', 'media'));
}