You are here

function entity_usage_schema in Entity Usage 8.3

Same name and namespace in other branches
  1. 8.4 entity_usage.install \entity_usage_schema()
  2. 8 entity_usage.install \entity_usage_schema()
  3. 8.2 entity_usage.install \entity_usage_schema()

Implements hook_schema().

1 call to entity_usage_schema()
entity_usage_update_8201 in ./entity_usage.install
Recreate the entity usage table with the new schema.

File

./entity_usage.install, line 16
Install, update and uninstall functions for entity_usage module.

Code

function entity_usage_schema() {
  $schema['entity_usage'] = [
    'description' => 'Track entities that reference other entities.',
    'fields' => [
      'target_id' => [
        'description' => 'The target entity ID.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ],
      'target_id_string' => [
        'description' => 'The target ID, when the entity uses string IDs.',
        'type' => 'varchar_ascii',
        'length' => 128,
        'not null' => TRUE,
        'default' => '',
      ],
      'target_type' => [
        'description' => 'The target entity type.',
        'type' => 'varchar_ascii',
        'length' => 128,
        'not null' => TRUE,
        'default' => '',
      ],
      'source_id' => [
        'description' => 'The source entity ID.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ],
      'source_id_string' => [
        'description' => 'The source ID, when the entity uses string IDs.',
        'type' => 'varchar_ascii',
        'length' => 128,
        'not null' => FALSE,
      ],
      'source_type' => [
        'description' => 'The source entity type.',
        'type' => 'varchar_ascii',
        'length' => 128,
        'not null' => TRUE,
        'default' => '',
      ],
      'source_langcode' => [
        'description' => 'The source entity language code.',
        'type' => 'varchar_ascii',
        'length' => 12,
        'not null' => TRUE,
        'default' => '',
      ],
      'source_vid' => [
        'description' => 'The source entity revision ID.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ],
    ],
    'primary key' => [
      'target_id',
      'target_id_string',
      'target_type',
      'source_id',
      'source_type',
      'source_langcode',
      'source_vid',
    ],
    'indexes' => [
      'target_entity' => [
        'target_type',
        'target_id',
      ],
      'target_entity_string' => [
        'target_type',
        'target_id_string',
      ],
      'source_entity' => [
        'source_type',
        'source_id',
      ],
      'source_entity_string' => [
        'source_type',
        'source_id_string',
      ],
    ],
  ];
  return $schema;
}