protected function SqlContentEntityStorageSchema::initializeRevisionDataTable

protected SqlContentEntityStorageSchema::initializeRevisionDataTable(ContentEntityTypeInterface $entity_type)

Initializes common information for a revision data table.

Parameters

\Drupal\Core\Entity\ContentEntityTypeInterface $entity_type: The entity type.

Return value

array A partial schema array for the revision data table.

File

core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php, line 948

Class

SqlContentEntityStorageSchema
Defines a schema handler that supports revisionable, translatable entities.

Namespace

Drupal\Core\Entity\Sql

Code

protected function initializeRevisionDataTable(ContentEntityTypeInterface $entity_type) {
  $entity_type_id = $entity_type->id();
  $id_key = $entity_type->getKey('id');
  $revision_key = $entity_type->getKey('revision');

  $schema = array(
    'description' => "The revision data table for $entity_type_id entities.",
    'primary key' => array($revision_key, $entity_type->getKey('langcode')),
    'indexes' => array(
      $entity_type_id . '__id__default_langcode__langcode' => array($id_key, $entity_type->getKey('default_langcode'), $entity_type->getKey('langcode')),
    ),
    'foreign keys' => array(
      $entity_type_id => array(
        'table' => $this->storage->getBaseTable(),
        'columns' => array($id_key => $id_key),
      ),
      $entity_type_id . '__revision' => array(
        'table' => $this->storage->getRevisionTable(),
        'columns' => array($revision_key => $revision_key),
      )
    ),
  );

  $this->addTableDefaults($schema);

  return $schema;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Entity!Sql!SqlContentEntityStorageSchema.php/function/SqlContentEntityStorageSchema::initializeRevisionDataTable/8.1.x