You are here

public function DatabaseQueue::schemaDefinition in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::schemaDefinition()
  2. 10 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::schemaDefinition()

Defines the schema for the queue table.

@internal

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

File

core/lib/Drupal/Core/Queue/DatabaseQueue.php, line 308

Class

DatabaseQueue
Default queue implementation.

Namespace

Drupal\Core\Queue

Code

public function schemaDefinition() {
  return [
    'description' => 'Stores items in queues.',
    'fields' => [
      'item_id' => [
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'description' => 'Primary Key: Unique item ID.',
      ],
      'name' => [
        'type' => 'varchar_ascii',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
        'description' => 'The queue name.',
      ],
      'data' => [
        'type' => 'blob',
        'not null' => FALSE,
        'size' => 'big',
        'serialize' => TRUE,
        'description' => 'The arbitrary data for the item.',
      ],
      'expire' => [
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
        'description' => 'Timestamp when the claim lease expires on the item.',
      ],
      'created' => [
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
        'description' => 'Timestamp when the item was created.',
      ],
    ],
    'primary key' => [
      'item_id',
    ],
    'indexes' => [
      'name_created' => [
        'name',
        'created',
      ],
      'expire' => [
        'expire',
      ],
    ],
  ];
}