Added initial migration numbers, fixed some UI issues

master
Mike Koch 7 years ago
parent 72428be04b
commit 0cd0337a39
No known key found for this signature in database
GPG Key ID: 9BA5D7F8391455ED

@ -11,6 +11,7 @@ require(HESK_PATH . 'install/migrations/core.php');
$allMigrations = getAllMigrations();
$json = file_get_contents('php://input');
$request = json_decode($json, true);
var_dump($request);
/* @var $migration AbstractMigration */
$migration = $allMigrations[$request['migrationNumber']];

@ -21,25 +21,33 @@ if (hesk_dbNumRows($tableSql) > 0) {
// They have installed at LEAST to version 1.6.0. Just pull the version number OR migration number
$migrationNumberSql = hesk_dbQuery("SELECT `Value` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'lastMigration'");
if ($migrationRow = hesk_dbFetchAssoc($migrationNumberSql)) {
$startingMigrationNumber = $migrationRow['Value'];
$startingMigrationNumber = intval($migrationRow['Value']) + 1;
} else {
$versionSql = hesk_dbQuery("SELECT `Value` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'modsForHeskVersion'");
$versionRow = hesk_dbFetchAssoc($versionSql);
//TODO Actually map this
$startingMigrationNumber = $versionRow['Value'];
$migration_map = array(
// Pre-1.4.0 to 1.5.0 did not have a settings table
'1.6.0' => 16, '1.6.1' => 17, '1.7.0' => 21, '2.0.0' => 27, '2.0.1' => 28, '2.1.0' => 29, '2.1.1' => 31,
'2.2.0' => 34, '2.2.1' => 35, '2.3.0' => 41, '2.3.1' => 42, '2.3.2' => 43, '2.4.0' => 48, '2.4.1' => 49,
'2.4.2' => 50, '2.5.0' => 54, '2.5.1' => 55, '2.5.2' => 56, '2.5.3' => 57, '2.5.4' => 58, '2.5.5' => 59,
'2.6.0' => 66, '2.6.1' => 67, '2.6.2' => 69, '2.6.3' => 70, '2.6.4' => 71, '3.0.0' => 75, '3.0.1' => 76,
'3.0.2' => 78, '3.0.3' => 79, '3.0.4' => 80, '3.0.5' => 81, '3.0.6' => 82, '3.0.7' => 83, '3.1.0' => 90,
'3.1.1' => 91
);
$startingMigrationNumber = $migration_map[$versionRow['Value']];
}
} else {
// migration # => sql for checking
$versionChecks = array(
// 1.5.0 -> users.active
1 => "SHOW COLUMNS FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` LIKE 'active'",
9 => "SHOW COLUMNS FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` LIKE 'active'",
// 1.4.1 -> denied_emails
2 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_emails'",
6 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_emails'",
// 1.4.0 -> denied ips
3 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_ips'",
4 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "denied_ips'",
// Pre-1.4.0 but still something -> statuses
4 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses'"
2 => "SHOW TABLES LIKE '" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses'"
);
foreach ($versionChecks as $migrationNumber => $sql) {

@ -60,7 +60,7 @@ function goToStep(step) {
}
function installOrUpdate() {
var startingMigrationNumber = $('input[name="starting-migration-number"]').val();
var startingMigrationNumber = parseInt($('input[name="starting-migration-number"]').val());
var heskPath = $('p#hesk-path').text();
@ -73,10 +73,8 @@ function installOrUpdate() {
$('[data-step="install-or-update"] > .fa-spinner').hide();
$('[data-step="install-or-update"] > .progress').show();
console.log(data.lastMigrationNumber);
// Recursive call that will increment by 1 each time
executeMigration(startingMigrationNumber, startingMigrationNumber, data.latestMigrationNumber, 'up');
executeMigration(startingMigrationNumber, startingMigrationNumber, data.lastMigrationNumber, 'up');
}
})
}
@ -87,18 +85,21 @@ function executeMigration(startingMigrationNumber, migrationNumber, latestMigrat
$.ajax({
url: heskPath + 'install/ajax/process-migration.php',
method: 'POST',
data: {
data: JSON.stringify({
migrationNumber: migrationNumber,
direction: direction
},
}),
success: function(data) {
console.log('migrationNumber: ' + migrationNumber);
console.log('latestMigrationNumber: ' + latestMigrationNumber);
console.log(migrationNumber === latestMigrationNumber);
if (migrationNumber === latestMigrationNumber) {
updateProgressBar(migrationNumber, latestMigrationNumber, false, true);
console.log('DONE');
} else {
updateProgressBar(migrationNumber, latestMigrationNumber, false, false);
var newMigrationNumber = direction === 'up' ? migrationNumber + 1 : migrationNumber - 1;
executeMigration(startingMigrationNumber, newMigrationNumber, latestMigrationNumber);
executeMigration(startingMigrationNumber, newMigrationNumber, latestMigrationNumber, direction);
}
},
error: function(data) {
@ -120,7 +121,7 @@ function updateProgressBar(migrationNumber, latestMigrationNumber, isError, isFi
}
if (isFinished) {
$progressBar.find('.progress-bar').hide();
$progressBar.hide();
$('#finished-install').show();
}
}
Loading…
Cancel
Save