contacts_events-8.x-1.x-dev/commerce_advancedqueue/commerce_advancedqueue.install
commerce_advancedqueue/commerce_advancedqueue.install
<?php
/**
* @file
* Install, update, uninstall and schema for the Commerce Advanced Queue module.
*/
/**
* Implements hook_schema().
*/
function commerce_advancedqueue_schema() {
$schema['commerce_advancedqueue_orders'] = [
'description' => 'Stores commerce order jobs in queues.',
'fields' => [
'job_id' => [
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'Primary Key: Job ID.',
],
'order_id' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The order ID.',
],
'queue_id' => [
'type' => 'varchar_ascii',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => 'The queue ID.',
],
'type' => [
'type' => 'varchar_ascii',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => 'The job type.',
],
'payload' => [
'type' => 'blob',
'not null' => TRUE,
'size' => 'big',
'description' => 'The job payload, stored as JSON.',
],
'state' => [
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'description' => 'The job state.',
],
'message' => [
'type' => 'text',
'not null' => FALSE,
'size' => 'medium',
'description' => 'The job message, stored after processing the job.',
],
'num_retries' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'small',
'description' => 'The number of times the job has been retried.',
],
'available' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The availability timestamp.',
],
'processed' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The processing timestamp.',
],
'expires' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The lease expiration timestamp.',
],
],
'primary key' => ['job_id'],
'indexes' => [
'queue' => ['queue_id', 'state', 'available', 'expires'],
'queue_state' => ['state'],
'order_queue' => [
'order_id',
'queue_id',
'state',
'available',
'expires',
],
'order_queue_state' => ['order_id', 'state'],
],
];
return $schema;
}
/**
* Recreate the advanced queue table.
*/
function commerce_advancedqueue_update_8001() {
// The previous table was botched and wont hold any meaningful data anyway.
$schema = \Drupal::database()->schema();
$schema->dropTable('commerce_advancedqueue_orders');
$schema->createTable('commerce_advancedqueue_orders', [
'description' => 'Stores commerce order jobs in queues.',
'fields' => [
'job_id' => [
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'Primary Key: Job ID.',
],
'order_id' => [
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => 'The order ID.',
],
'queue_id' => [
'type' => 'varchar_ascii',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => 'The queue ID.',
],
'type' => [
'type' => 'varchar_ascii',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => 'The job type.',
],
'payload' => [
'type' => 'blob',
'not null' => TRUE,
'size' => 'big',
'description' => 'The job payload, stored as JSON.',
],
'state' => [
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'description' => 'The job state.',
],
'message' => [
'type' => 'text',
'not null' => FALSE,
'size' => 'medium',
'description' => 'The job message, stored after processing the job.',
],
'num_retries' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'small',
'description' => 'The number of times the job has been retried.',
],
'available' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The availability timestamp.',
],
'processed' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The processing timestamp.',
],
'expires' => [
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => 'The lease expiration timestamp.',
],
],
'primary key' => ['job_id'],
'indexes' => [
'queue' => ['queue_id', 'state', 'available', 'expires'],
'queue_state' => ['state'],
'order_queue' => [
'order_id',
'queue_id',
'state',
'available',
'expires',
],
'order_queue_state' => ['order_id', 'state'],
],
]);
}
