JobScheduleStorageSchema.php in Job Scheduler 8.3
File
src/JobScheduleStorageSchema.php
View source
<?php
namespace Drupal\job_scheduler;
use Drupal\Core\Entity\ContentEntityTypeInterface;
use Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
class JobScheduleStorageSchema extends SqlContentEntityStorageSchema {
protected function getEntitySchema(ContentEntityTypeInterface $entity_type, $reset = FALSE) {
$schema = parent::getEntitySchema($entity_type, $reset);
if ($data_table = $this->storage
->getBaseTable()) {
$schema[$data_table]['indexes'] += [
'job_schedule__name_type_id' => [
'name',
'type',
'id',
],
'job_schedule__name_type' => [
'name',
'type',
],
];
}
return $schema;
}
protected function getSharedTableFieldSchema(FieldStorageDefinitionInterface $storage_definition, $table_name, array $column_mapping) {
$schema = parent::getSharedTableFieldSchema($storage_definition, $table_name, $column_mapping);
$field_name = $storage_definition
->getName();
if ($table_name == $this->storage
->getBaseTable()) {
switch ($field_name) {
case 'next':
case 'scheduled':
$this
->addSharedTableFieldIndex($storage_definition, $schema, TRUE);
break;
}
}
return $schema;
}
}