mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
With utf8mb4 a constraint of 255 results in a maximum possible primary key of 1020 bytes which is larger then the maximum 767 bytes in older MySQL versions. Changing the constraint to 191 results in a max. primary key of 764 bytes which will work with those ancient versions and 191 is still enough for this column. The id's in the cron table are text, why we can't use numerical ID's here
217 lines
6.7 KiB
PHP
217 lines
6.7 KiB
PHP
<?php
|
|
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
class Migration_cron_table extends CI_Migration {
|
|
|
|
public function up() {
|
|
if (!$this->db->table_exists('cron')) {
|
|
|
|
// define the structure of the new cron table
|
|
$this->dbforge->add_field(array(
|
|
'id' => array(
|
|
'type' => 'VARCHAR',
|
|
'constraint' => '191',
|
|
'null' => FALSE,
|
|
),
|
|
'enabled' => array(
|
|
'type' => 'TINYINT',
|
|
'constraint' => '1',
|
|
'null' => FALSE,
|
|
),
|
|
'status' => array(
|
|
'type' => 'VARCHAR',
|
|
'constraint' => '255',
|
|
'null' => TRUE,
|
|
),
|
|
'description' => array(
|
|
'type' => 'VARCHAR',
|
|
'constraint' => '255',
|
|
'null' => TRUE,
|
|
),
|
|
'function' => array(
|
|
'type' => 'VARCHAR',
|
|
'constraint' => '255',
|
|
'null' => FALSE,
|
|
),
|
|
'expression' => array(
|
|
'type' => 'VARCHAR',
|
|
'constraint' => '100',
|
|
'null' => TRUE,
|
|
),
|
|
'last_run' => array(
|
|
'type' => 'TIMESTAMP',
|
|
'null' => TRUE,
|
|
),
|
|
'next_run' => array(
|
|
'type' => 'TIMESTAMP',
|
|
'null' => TRUE,
|
|
),
|
|
'modified' => array(
|
|
'type' => 'TIMESTAMP',
|
|
'null' => TRUE,
|
|
),
|
|
));
|
|
|
|
// we set the key for the id, in this case the id is not numerical
|
|
$this->dbforge->add_key('id', TRUE);
|
|
|
|
// now we can create the new table
|
|
$this->dbforge->create_table('cron');
|
|
|
|
// to transfer data for the file updates we load the optionslib library
|
|
$this->load->library('OptionsLib');
|
|
|
|
// and we fill the table with the cronjobs
|
|
$data = array(
|
|
array(
|
|
'id' => 'clublog_upload',
|
|
'enabled' => '0',
|
|
'status' => 'pending',
|
|
'description' => 'Upload QSOs to Clublog',
|
|
'function' => 'index.php/clublog/upload',
|
|
'expression' => '3 */6 * * *',
|
|
'last_run' => null,
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'lotw_lotw_upload',
|
|
'enabled' => '0',
|
|
'status' => 'pending',
|
|
'description' => 'Upload QSOs to LoTW',
|
|
'function' => 'index.php/lotw/lotw_upload',
|
|
'expression' => '0 */1 * * *',
|
|
'last_run' => null,
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'qrz_upload',
|
|
'enabled' => '0',
|
|
'status' => 'pending',
|
|
'description' => 'Upload QSOs to QRZ',
|
|
'function' => 'index.php/qrz/upload',
|
|
'expression' => '6 */6 * * *',
|
|
'last_run' => null,
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'qrz_download',
|
|
'enabled' => '0',
|
|
'status' => 'pending',
|
|
'description' => 'Download QSOs from QRZ',
|
|
'function' => 'index.php/qrz/download',
|
|
'expression' => '18 */6 * * *',
|
|
'last_run' => null,
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'hrdlog_upload',
|
|
'enabled' => '0',
|
|
'status' => 'pending',
|
|
'description' => 'Upload QSOs to HRD',
|
|
'function' => 'index.php/hrdlog/upload',
|
|
'expression' => '12 */6 * * *',
|
|
'last_run' => null,
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'eqsl_sync',
|
|
'enabled' => '0',
|
|
'status' => 'pending',
|
|
'description' => 'Upload/download QSOs to/from Eqsl',
|
|
'function' => 'index.php/eqsl/sync',
|
|
'expression' => '9 */6 * * *',
|
|
'last_run' => null,
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'update_lotw_users',
|
|
'enabled' => '1',
|
|
'status' => 'pending',
|
|
'description' => 'Update LOTW Users Activity',
|
|
'function' => 'index.php/update/lotw_users',
|
|
'expression' => '10 1 * * 1',
|
|
'last_run' => ($this->optionslib->get_option('lotw_users_update') ? date("Y-m-d H:i", strtotime($this->optionslib->get_option('lotw_users_update'))) : null),
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'update_update_clublog_scp',
|
|
'enabled' => '1',
|
|
'status' => 'pending',
|
|
'description' => 'Update Clublog SCP Database File',
|
|
'function' => 'index.php/update/update_clublog_scp',
|
|
'expression' => '0 0 * * 0',
|
|
'last_run' => ($this->optionslib->get_option('scp_update') ? date("Y-m-d H:i", strtotime($this->optionslib->get_option('scp_update'))) : null),
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'update_update_dok',
|
|
'enabled' => '1',
|
|
'status' => 'pending',
|
|
'description' => 'Update DOK File',
|
|
'function' => 'index.php/update/update_dok',
|
|
'expression' => '0 0 1 * *',
|
|
'last_run' => ($this->optionslib->get_option('dok_file_update') ? date("Y-m-d H:i", strtotime($this->optionslib->get_option('dok_file_update'))) : null),
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'update_update_sota',
|
|
'enabled' => '1',
|
|
'status' => 'pending',
|
|
'description' => 'Update SOTA File',
|
|
'function' => 'index.php/update/update_sota',
|
|
'expression' => '5 0 1 * *',
|
|
'last_run' => ($this->optionslib->get_option('sota_file_update') ? date("Y-m-d H:i", strtotime($this->optionslib->get_option('sota_file_update'))) : null),
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'update_update_wwff',
|
|
'enabled' => '1',
|
|
'status' => 'pending',
|
|
'description' => 'Update WWFF File',
|
|
'function' => 'index.php/update/update_wwff',
|
|
'expression' => '10 0 1 * *',
|
|
'last_run' => ($this->optionslib->get_option('wwff_file_update') ? date("Y-m-d H:i", strtotime($this->optionslib->get_option('wwff_file_update'))) : null),
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'update_update_pota',
|
|
'enabled' => '1',
|
|
'status' => 'pending',
|
|
'description' => 'Update POTA File',
|
|
'function' => 'index.php/update/update_pota',
|
|
'expression' => '15 0 1 * *',
|
|
'last_run' => ($this->optionslib->get_option('pota_file_update') ? date("Y-m-d H:i", strtotime($this->optionslib->get_option('pota_file_update'))) : null),
|
|
'next_run' => null
|
|
),
|
|
array(
|
|
'id' => 'update_dxcc',
|
|
'enabled' => '1',
|
|
'status' => 'pending',
|
|
'description' => 'Update DXCC data',
|
|
'function' => 'index.php/update/dxcc',
|
|
'expression' => '20 0 1 */2 *',
|
|
'last_run' => ($this->optionslib->get_option('dxcc_clublog_update') ? date("Y-m-d H:i", strtotime($this->optionslib->get_option('dxcc_clublog_update'))) : null),
|
|
'next_run' => null
|
|
),
|
|
);
|
|
$this->db->insert_batch('cron', $data);
|
|
|
|
// since we transfered the source for the file update timestamps we don't need this options anymore
|
|
$this->db->delete('options', array('option_name' => 'lotw_users_update'));
|
|
$this->db->delete('options', array('option_name' => 'scp_update'));
|
|
$this->db->delete('options', array('option_name' => 'dok_file_update'));
|
|
$this->db->delete('options', array('option_name' => 'sota_file_update'));
|
|
$this->db->delete('options', array('option_name' => 'wwff_file_update'));
|
|
$this->db->delete('options', array('option_name' => 'pota_file_update'));
|
|
$this->db->delete('options', array('option_name' => 'dxcc_clublog_update'));
|
|
}
|
|
}
|
|
|
|
public function down() {
|
|
|
|
$this->dbforge->drop_table('cron');
|
|
|
|
}
|
|
}
|