danielebarchiesi@4: 'Stores scheduled tasks.', danielebarchiesi@4: 'fields' => array( danielebarchiesi@4: 'tid' => array( danielebarchiesi@4: 'type' => 'serial', danielebarchiesi@4: 'unsigned' => TRUE, danielebarchiesi@4: 'not null' => TRUE, danielebarchiesi@4: 'description' => "The scheduled task's id.", danielebarchiesi@4: ), danielebarchiesi@4: 'config' => array( danielebarchiesi@4: 'type' => 'varchar', danielebarchiesi@4: 'length' => '64', danielebarchiesi@4: 'default' => '', danielebarchiesi@4: 'not null' => TRUE, danielebarchiesi@4: 'description' => "The scheduled configuration's name.", danielebarchiesi@4: ), danielebarchiesi@4: 'date' => array( danielebarchiesi@4: 'description' => 'The Unix timestamp of when the task is to be scheduled.', danielebarchiesi@4: 'type' => 'int', danielebarchiesi@4: 'not null' => TRUE, danielebarchiesi@4: ), danielebarchiesi@4: 'data' => array( danielebarchiesi@4: 'type' => 'text', danielebarchiesi@4: 'not null' => FALSE, danielebarchiesi@4: 'serialize' => TRUE, danielebarchiesi@4: 'description' => 'The whole, serialized evaluation data.', danielebarchiesi@4: ), danielebarchiesi@4: 'identifier' => array( danielebarchiesi@4: 'type' => 'varchar', danielebarchiesi@4: 'length' => '255', danielebarchiesi@4: 'default' => '', danielebarchiesi@4: 'not null' => FALSE, danielebarchiesi@4: 'description' => 'The user defined string identifying this task.', danielebarchiesi@4: ), danielebarchiesi@4: 'handler' => array( danielebarchiesi@4: 'type' => 'varchar', danielebarchiesi@4: 'length' => '255', danielebarchiesi@4: 'not null' => FALSE, danielebarchiesi@4: 'description' => 'The fully qualified class name of a the queue item handler.', danielebarchiesi@4: ), danielebarchiesi@4: ), danielebarchiesi@4: 'primary key' => array('tid'), danielebarchiesi@4: 'indexes' => array( danielebarchiesi@4: 'date' => array('date'), danielebarchiesi@4: ), danielebarchiesi@4: 'unique key' => array( danielebarchiesi@4: 'id' => array('config', 'identifier'), danielebarchiesi@4: ), danielebarchiesi@4: ); danielebarchiesi@4: return $schema; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Upgrade from Rules scheduler 6.x-1.x to 7.x. danielebarchiesi@4: */ danielebarchiesi@4: function rules_scheduler_update_7200() { danielebarchiesi@4: // Rename the old table so we can keep its content and start over with a danielebarchiesi@4: // fresh one. danielebarchiesi@4: db_rename_table('rules_scheduler', 'rules_scheduler_d6'); danielebarchiesi@4: // Create the d7 table. danielebarchiesi@4: $schema['rules_scheduler'] = array( danielebarchiesi@4: 'description' => 'Stores scheduled tasks.', danielebarchiesi@4: 'fields' => array( danielebarchiesi@4: 'tid' => array( danielebarchiesi@4: 'type' => 'serial', danielebarchiesi@4: 'unsigned' => TRUE, danielebarchiesi@4: 'not null' => TRUE, danielebarchiesi@4: 'description' => "The scheduled task's id.", danielebarchiesi@4: ), danielebarchiesi@4: 'config' => array( danielebarchiesi@4: 'type' => 'varchar', danielebarchiesi@4: 'length' => '255', danielebarchiesi@4: 'default' => '', danielebarchiesi@4: 'not null' => TRUE, danielebarchiesi@4: 'description' => "The scheduled configuration's name.", danielebarchiesi@4: ), danielebarchiesi@4: 'date' => array( danielebarchiesi@4: 'description' => 'The Unix timestamp of when the task is to be scheduled.', danielebarchiesi@4: 'type' => 'int', danielebarchiesi@4: 'not null' => TRUE, danielebarchiesi@4: ), danielebarchiesi@4: 'data' => array( danielebarchiesi@4: 'type' => 'text', danielebarchiesi@4: 'not null' => FALSE, danielebarchiesi@4: 'serialize' => TRUE, danielebarchiesi@4: 'description' => 'The whole, serialized evaluation data.', danielebarchiesi@4: ), danielebarchiesi@4: 'identifier' => array( danielebarchiesi@4: 'type' => 'varchar', danielebarchiesi@4: 'length' => '255', danielebarchiesi@4: 'default' => '', danielebarchiesi@4: 'not null' => FALSE, danielebarchiesi@4: 'description' => 'The user defined string identifying this task.', danielebarchiesi@4: ), danielebarchiesi@4: ), danielebarchiesi@4: 'primary key' => array('tid'), danielebarchiesi@4: 'indexes' => array('date' => array('date')), danielebarchiesi@4: ); danielebarchiesi@4: db_create_table('rules_scheduler', $schema['rules_scheduler']); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Fix the length of the rules_scheduler.name column. danielebarchiesi@4: */ danielebarchiesi@4: function rules_scheduler_update_7202() { danielebarchiesi@4: // Note that update 7201 (add the 'id' unique key') has been removed as it is danielebarchiesi@4: // incorporated by 7202. For anyone that has already run the previous update danielebarchiesi@4: // 7201, we have to first drop the unique key. danielebarchiesi@4: db_drop_unique_key('rules_scheduler', 'id'); danielebarchiesi@4: db_change_field('rules_scheduler', 'config', 'config', array( danielebarchiesi@4: 'type' => 'varchar', danielebarchiesi@4: 'length' => '64', danielebarchiesi@4: 'default' => '', danielebarchiesi@4: 'not null' => TRUE, danielebarchiesi@4: 'description' => "The scheduled configuration's name.", danielebarchiesi@4: )); danielebarchiesi@4: db_add_unique_key('rules_scheduler', 'id', array('config', 'identifier')); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Add a database column for specifying a queue item handler. danielebarchiesi@4: */ danielebarchiesi@4: function rules_scheduler_update_7203() { danielebarchiesi@4: db_add_field('rules_scheduler', 'handler', array( danielebarchiesi@4: 'type' => 'varchar', danielebarchiesi@4: 'length' => '255', danielebarchiesi@4: 'not null' => FALSE, danielebarchiesi@4: 'description' => 'The fully qualified class name of a the queue item handler.', danielebarchiesi@4: )); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Rename rules_scheduler.state into rules_scheduler.data. danielebarchiesi@4: */ danielebarchiesi@4: function rules_scheduler_update_7204() { danielebarchiesi@4: db_change_field('rules_scheduler', 'state', 'data', array( danielebarchiesi@4: 'type' => 'text', danielebarchiesi@4: 'not null' => FALSE, danielebarchiesi@4: 'serialize' => TRUE, danielebarchiesi@4: 'description' => 'The whole, serialized evaluation data.', danielebarchiesi@4: )); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Rules upgrade callback for mapping the action name. danielebarchiesi@4: */ danielebarchiesi@4: function rules_scheduler_action_upgrade_map_name($element) { danielebarchiesi@4: return 'schedule'; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Rules upgrade callback. danielebarchiesi@4: */ danielebarchiesi@4: function rules_scheduler_action_upgrade($element, $target) { danielebarchiesi@4: $target->settings['component'] = $element['#info']['set']; danielebarchiesi@4: $target->settings['date'] = $element['#settings']['task_date']; danielebarchiesi@4: $target->settings['identifier'] = $element['#settings']['task_identifier']; danielebarchiesi@4: danielebarchiesi@4: unset($element['#info']['arguments']['task_date'], $element['#info']['arguments']['task_identifier']); danielebarchiesi@4: foreach ($element['#info']['arguments'] as $name => $info) { danielebarchiesi@4: rules_upgrade_element_parameter_settings($element, $target, $name, $info, 'param_' . $name); danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Rules upgrade callback for mapping the action name. danielebarchiesi@4: */ danielebarchiesi@4: function rules_action_delete_scheduled_set_upgrade_map_name($element) { danielebarchiesi@4: return 'schedule_delete'; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Rules upgrade callback. danielebarchiesi@4: */ danielebarchiesi@4: function rules_action_delete_scheduled_set_upgrade($element, $target) { danielebarchiesi@4: $target->settings['component'] = $element['#settings']['ruleset']; danielebarchiesi@4: $target->settings['task'] = $element['#settings']['task_identifier']; danielebarchiesi@4: }