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/Flood/DatabaseBackend.php \Drupal\Core\Flood\DatabaseBackend::schemaDefinition()

Defines the schema for the flood table.

@internal

1 call to DatabaseBackend::schemaDefinition()
DatabaseBackend::ensureTableExists in core/lib/Drupal/Core/Flood/DatabaseBackend.php
Check if the flood table exists and create it if not.

File

core/lib/Drupal/Core/Flood/DatabaseBackend.php, line 191

Class

DatabaseBackend
Defines the database flood backend. This is the default Drupal backend.

Namespace

Drupal\Core\Flood

Code

public function schemaDefinition() {
  return [
    'description' => 'Flood controls the threshold of events, such as the number of contact attempts.',
    'fields' => [
      'fid' => [
        'description' => 'Unique flood event ID.',
        'type' => 'serial',
        'not null' => TRUE,
      ],
      'event' => [
        'description' => 'Name of event (e.g. contact).',
        'type' => 'varchar_ascii',
        'length' => 64,
        'not null' => TRUE,
        'default' => '',
      ],
      'identifier' => [
        'description' => 'Identifier of the visitor, such as an IP address or hostname.',
        'type' => 'varchar_ascii',
        'length' => 128,
        'not null' => TRUE,
        'default' => '',
      ],
      'timestamp' => [
        'description' => 'Timestamp of the event.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
      'expiration' => [
        'description' => 'Expiration timestamp. Expired events are purged on cron run.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ],
    ],
    'primary key' => [
      'fid',
    ],
    'indexes' => [
      'allow' => [
        'event',
        'identifier',
        'timestamp',
      ],
      'purge' => [
        'expiration',
      ],
    ],
  ];
}