function upgradefmDNSSchema($module_name) { global $fmdb; /** Include module variables */ @(include dirname(__FILE__) . '/variables.inc.php'); /** Get current version */ $running_version = getOption('version', 0, $module_name); /** Checks to support older versions (ie n-3 upgrade scenarios */ $success = version_compare($running_version, '2.0', '<') ? upgradefmDNS_200($__FM_CONFIG, $running_version) : true; if (!$success) { return $fmdb->last_error; } setOption('client_version', $__FM_CONFIG['fmDNS']['client_version'], 'auto', false, 0, 'fmDNS'); return true; }
/** 2.1-beta1 */ function upgradefmDNS_2101($__FM_CONFIG, $running_version) { global $fmdb, $module_name; $success = version_compare($running_version, '2.0', '<') ? upgradefmDNS_200($__FM_CONFIG, $running_version) : true; if (!$success) { return false; } $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}config` DROP INDEX domain_id, ADD INDEX `idx_domain_id` (`domain_id`)"; $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}domains` ADD INDEX `idx_domain_status` (`domain_status`)"; $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}functions` DROP INDEX def_option, ADD INDEX `idx_def_option` (`def_option`)"; $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}records` DROP INDEX domain_id, ADD INDEX `idx_domain_id` (`domain_id`)"; $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}records` ADD INDEX `idx_record_status` (`record_status`)"; $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}records` ADD INDEX `idx_record_account_id` (`account_id`)"; $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}records_skipped` DROP INDEX record_id, ADD INDEX `idx_record_id` (`record_id`)"; $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmDNS']['prefix']}servers` DROP INDEX server_serial_no, ADD UNIQUE `idx_server_serial_no` (`server_serial_no`)"; $inserts[] = <<<INSERT INSERT IGNORE INTO `fm_{$__FM_CONFIG['fmDNS']['prefix']}functions` ( `def_function` , `def_option_type`, `def_option` , `def_type` , `def_multiple_values` , `def_clause_support`, `def_dropdown`, `def_max_parameters` ) VALUES ('options', 'global', 'include', '( quoted_string )', 'no', 'OVZ', 'no', '-1'), ('options', 'response-policy', '( string )', 'no', 'O', NULL, 'no', '1') ; INSERT; /** Run queries */ if (count($table) && $table[0]) { foreach ($table as $schema) { $fmdb->query($schema); if (!$fmdb->result || $fmdb->sql_errors) { return false; } } } /** Run queries */ if (count($inserts) && $inserts[0]) { foreach ($inserts as $schema) { $fmdb->query($schema); if (!$fmdb->result || $fmdb->sql_errors) { return false; } } } setOption('version', '2.1-beta1', 'auto', false, 0, $module_name); return true; }