You are here

function tmgmt_extension_suit_update_8301 in TMGMT Extension Suite 8.3

Add missing columns.

Adds tes_source_content_hash and job_file_name columns to tmgmt_job_item and tmgmt_job tables accordingly if any.

File

./tmgmt_extension_suit.install, line 277
Update function for the tmgmt_extension_suit module.

Code

function tmgmt_extension_suit_update_8301() {
  $entity_definition_manager = Drupal::entityDefinitionUpdateManager();
  $schema = Database::getConnection()
    ->schema();
  if (!$schema
    ->fieldExists("tmgmt_job_item", "tes_source_content_hash")) {
    $field_storage_definition = BaseFieldDefinition::create('string')
      ->setLabel(t('Source content hash (md5)'))
      ->setSetting('max_length', 32)
      ->setTranslatable(FALSE);
    $entity_definition_manager
      ->installFieldStorageDefinition('tes_source_content_hash', 'tmgmt_job_item', 'tmgmt_extension_suit', $field_storage_definition);
    $tji_ids = \Drupal::entityQuery('tmgmt_job_item')
      ->execute();

    // Set `tes_source_content_hash` value for each job item.
    foreach ($tji_ids as $tji_id) {
      $job_item = JobItem::load($tji_id);
      $job_item
        ->save();
    }
  }
  if (!$schema
    ->fieldExists("tmgmt_job", "job_file_name")) {
    $field_storage_definition = BaseFieldDefinition::create('string')
      ->setLabel(t('Generated file name'))
      ->setSetting('max_length', 1024)
      ->setTranslatable(FALSE);
    $entity_definition_manager
      ->installFieldStorageDefinition('job_file_name', 'tmgmt_job', 'tmgmt_extension_suit', $field_storage_definition);
  }
}