You are here

function prod_monitor_schema in Production check & Production monitor 7

Same name and namespace in other branches
  1. 6 prod_monitor/prod_monitor.install \prod_monitor_schema()

Implementation of hook_schema().

1 call to prod_monitor_schema()
prod_monitor_update_7102 in prod_monitor/prod_monitor.install
Add new table to store performance data.

File

prod_monitor/prod_monitor.install, line 6

Code

function prod_monitor_schema() {
  return array(
    'prod_monitor_sites' => array(
      'description' => 'Holds all sites and data monitored by Production monitor.',
      'fields' => array(
        'id' => array(
          'description' => 'The primary identifier for a site.',
          'type' => 'serial',
          'unsigned' => TRUE,
          'not null' => TRUE,
        ),
        'url' => array(
          'description' => 'URL of the website to monitor.',
          'type' => 'text',
          'size' => 'normal',
          'default' => NULL,
        ),
        'settings' => array(
          'description' => 'All settings related to the site.',
          'type' => 'text',
          'size' => 'medium',
          'default' => NULL,
        ),
        'data' => array(
          'description' => 'All data collected through XMLRPC in serialized form.',
          'type' => 'text',
          'size' => 'medium',
          'default' => NULL,
        ),
        'added' => array(
          'description' => 'The Unix timestamp when the site was added.',
          'type' => 'int',
          'not null' => TRUE,
          'default' => 0,
        ),
        'lastupdate' => array(
          'description' => 'The Unix timestamp when the data was most recently updated.',
          'type' => 'int',
          'not null' => TRUE,
          'default' => 0,
        ),
      ),
      'primary key' => array(
        'id',
      ),
    ),
    'prod_monitor_site_modules' => array(
      'description' => 'Holds all retrieved module data for a specific site.',
      'fields' => array(
        'id' => array(
          'description' => 'The primary identifier for a site.',
          'type' => 'int',
          'unsigned' => TRUE,
          'not null' => TRUE,
        ),
        'projects' => array(
          'description' => 'All modules installed on the remote site.',
          'type' => 'text',
          'size' => 'medium',
          'default' => NULL,
        ),
        'sitekey' => array(
          'description' => 'The unique key for the site.',
          'type' => 'varchar',
          'length' => 128,
          'not null' => TRUE,
          'default' => '',
        ),
        'lastfetch' => array(
          'description' => 'The Unix timestamp when the data was most recently retrieved from the remote site.',
          'type' => 'int',
          'not null' => TRUE,
          'default' => 0,
        ),
        'available' => array(
          'description' => 'All module updates available for the remote site.',
          'type' => 'text',
          'size' => 'medium',
          'default' => NULL,
        ),
        'updates' => array(
          'description' => '0 = unknown, 1 = no updates, 2 = regular updates, 3 = security updates.',
          'type' => 'int',
          'size' => 'tiny',
          'unsigned' => TRUE,
          'not null' => TRUE,
          'default' => 0,
        ),
        'lastupdate' => array(
          'description' => 'The Unix timestamp of the most recent module update check.',
          'type' => 'int',
          'not null' => TRUE,
          'default' => 0,
        ),
      ),
      'foreign keys' => array(
        'prod_monitor_sites' => array(
          'table' => 'prod_monitor_sites',
          'columns' => array(
            'id' => 'id',
          ),
        ),
      ),
      'primary key' => array(
        'id',
      ),
    ),
    'prod_monitor_site_performance' => array(
      'description' => 'Holds all retrieved performance data for a specific site.',
      'fields' => array(
        'id' => array(
          'description' => 'The primary identifier for a site.',
          'type' => 'int',
          'unsigned' => TRUE,
          'not null' => TRUE,
        ),
        'module' => array(
          'description' => 'The module that reported the performance data.',
          'type' => 'varchar',
          'length' => 255,
          'not null' => TRUE,
        ),
        'data' => array(
          'description' => 'The actual performance data.',
          'type' => 'text',
          'size' => 'medium',
          'default' => NULL,
        ),
        'annotation' => array(
          'description' => 'A short annotation to this specific dataset.',
          'type' => 'varchar',
          'length' => 255,
          'default' => NULL,
        ),
        'fetched' => array(
          'description' => 'The Unix timestamp when the data was retrieved from the remote site.',
          'type' => 'int',
          'not null' => TRUE,
          'default' => 0,
        ),
      ),
      'foreign keys' => array(
        'prod_monitor_sites' => array(
          'table' => 'prod_monitor_sites',
          'columns' => array(
            'id' => 'id',
          ),
        ),
      ),
      'primary key' => array(
        'id',
        'module',
        'fetched',
      ),
    ),
  );
}