You are here

function key_schema in Key 7

Same name and namespace in other branches
  1. 7.3 key.install \key_schema()
  2. 7.2 key.install \key_schema()

Implements hook_schema().

Create table to store key configurations.

File

./key.install, line 13
Install, update and uninstall functions for the Key module.

Code

function key_schema() {
  $schema['key_config'] = array(
    'description' => 'Stores key configurations.',
    'fields' => array(
      'name' => array(
        'description' => 'The machine name of the configuration.',
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
      ),
      'label' => array(
        'description' => 'The human-readable label of the configuration.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
      ),
      'description' => array(
        'description' => 'A brief description of the configuration.',
        'type' => 'text',
        'not null' => TRUE,
        'size' => 'medium',
      ),
      'type' => array(
        'description' => 'The type of key.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
      ),
      'provider' => array(
        'description' => 'The key provider to use.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
      ),
      'provider_settings' => array(
        'description' => 'Additional settings for the key provider.',
        'type' => 'blob',
        'not null' => FALSE,
        'size' => 'big',
      ),
      'created' => array(
        'description' => 'The Unix timestamp when the configuration was created.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
      'changed' => array(
        'description' => 'The Unix timestamp when the configuration was last saved.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
    ),
    'indexes' => array(
      'label' => array(
        'label',
      ),
      'type' => array(
        'type',
      ),
      'provider' => array(
        'provider',
      ),
    ),
    'primary key' => array(
      'name',
    ),
  );
  $schema['key_integration'] = array(
    'description' => 'Stores settings for key integrations.',
    'fields' => array(
      'name' => array(
        'description' => 'The machine name of the integration.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
      ),
      'enabled' => array(
        'description' => 'A boolean indicating if this integration is enabled.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
      'settings' => array(
        'description' => 'Additional settings for the integration.',
        'type' => 'blob',
        'not null' => FALSE,
        'size' => 'big',
      ),
    ),
    'indexes' => array(
      'enabled' => array(
        'enabled',
      ),
    ),
    'primary key' => array(
      'name',
    ),
  );
  return $schema;
}