You are here

public function DatabaseBackend::schemaDefinition in Drupal 9

Same name in this branch
  1. 9 core/lib/Drupal/Core/Flood/DatabaseBackend.php \Drupal\Core\Flood\DatabaseBackend::schemaDefinition()
  2. 9 core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::schemaDefinition()
Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::schemaDefinition()

Defines the schema for the {cache_*} bin tables.

@internal

1 call to DatabaseBackend::schemaDefinition()
DatabaseBackend::ensureBinExists in core/lib/Drupal/Core/Cache/DatabaseBackend.php
Check if the cache bin exists and create it if not.

File

core/lib/Drupal/Core/Cache/DatabaseBackend.php, line 478

Class

DatabaseBackend
Defines a default cache implementation.

Namespace

Drupal\Core\Cache

Code

public function schemaDefinition() {
  $schema = [
    'description' => 'Storage for the cache API.',
    'fields' => [
      'cid' => [
        'description' => 'Primary Key: Unique cache ID.',
        'type' => 'varchar_ascii',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'binary' => TRUE,
      ],
      'data' => [
        'description' => 'A collection of data to cache.',
        'type' => 'blob',
        'not null' => FALSE,
        'size' => 'big',
      ],
      'expire' => [
        'description' => 'A Unix timestamp indicating when the cache entry should expire, or ' . Cache::PERMANENT . ' for never.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
      'created' => [
        'description' => 'A timestamp with millisecond precision indicating when the cache entry was created.',
        'type' => 'numeric',
        'precision' => 14,
        'scale' => 3,
        'not null' => TRUE,
        'default' => 0,
      ],
      'serialized' => [
        'description' => 'A flag to indicate whether content is serialized (1) or not (0).',
        'type' => 'int',
        'size' => 'small',
        'not null' => TRUE,
        'default' => 0,
      ],
      'tags' => [
        'description' => 'Space-separated list of cache tags for this entry.',
        'type' => 'text',
        'size' => 'big',
        'not null' => FALSE,
      ],
      'checksum' => [
        'description' => 'The tag invalidation checksum when this entry was saved.',
        'type' => 'varchar_ascii',
        'length' => 255,
        'not null' => TRUE,
      ],
    ],
    'indexes' => [
      'expire' => [
        'expire',
      ],
      'created' => [
        'created',
      ],
    ],
    'primary key' => [
      'cid',
    ],
  ];
  return $schema;
}