Added initial migration numbers, fixed some UI issues
This commit is contained in:
parent
72428be04b
commit
0cd0337a39
@ -11,6 +11,7 @@ require(HESK_PATH . 'install/migrations/core.php');
|
|||||||
$allMigrations = getAllMigrations();
|
$allMigrations = getAllMigrations();
|
||||||
$json = file_get_contents('php://input');
|
$json = file_get_contents('php://input');
|
||||||
$request = json_decode($json, true);
|
$request = json_decode($json, true);
|
||||||
|
var_dump($request);
|
||||||
|
|
||||||
/* @var $migration AbstractMigration */
|
/* @var $migration AbstractMigration */
|
||||||
$migration = $allMigrations[$request['migrationNumber']];
|
$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
|
// 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'");
|
$migrationNumberSql = hesk_dbQuery("SELECT `Value` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'lastMigration'");
|
||||||
if ($migrationRow = hesk_dbFetchAssoc($migrationNumberSql)) {
|
if ($migrationRow = hesk_dbFetchAssoc($migrationNumberSql)) {
|
||||||
$startingMigrationNumber = $migrationRow['Value'];
|
$startingMigrationNumber = intval($migrationRow['Value']) + 1;
|
||||||
} else {
|
} else {
|
||||||
$versionSql = hesk_dbQuery("SELECT `Value` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'modsForHeskVersion'");
|
$versionSql = hesk_dbQuery("SELECT `Value` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` WHERE `Key` = 'modsForHeskVersion'");
|
||||||
$versionRow = hesk_dbFetchAssoc($versionSql);
|
$versionRow = hesk_dbFetchAssoc($versionSql);
|
||||||
|
|
||||||
//TODO Actually map this
|
$migration_map = array(
|
||||||
$startingMigrationNumber = $versionRow['Value'];
|
// 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 {
|
} else {
|
||||||
// migration # => sql for checking
|
// migration # => sql for checking
|
||||||
$versionChecks = array(
|
$versionChecks = array(
|
||||||
// 1.5.0 -> users.active
|
// 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
|
// 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
|
// 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
|
// 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) {
|
foreach ($versionChecks as $migrationNumber => $sql) {
|
||||||
|
@ -60,7 +60,7 @@ function goToStep(step) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function installOrUpdate() {
|
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();
|
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"] > .fa-spinner').hide();
|
||||||
$('[data-step="install-or-update"] > .progress').show();
|
$('[data-step="install-or-update"] > .progress').show();
|
||||||
|
|
||||||
console.log(data.lastMigrationNumber);
|
|
||||||
|
|
||||||
// Recursive call that will increment by 1 each time
|
// 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({
|
$.ajax({
|
||||||
url: heskPath + 'install/ajax/process-migration.php',
|
url: heskPath + 'install/ajax/process-migration.php',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data: {
|
data: JSON.stringify({
|
||||||
migrationNumber: migrationNumber,
|
migrationNumber: migrationNumber,
|
||||||
direction: direction
|
direction: direction
|
||||||
},
|
}),
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
|
console.log('migrationNumber: ' + migrationNumber);
|
||||||
|
console.log('latestMigrationNumber: ' + latestMigrationNumber);
|
||||||
|
console.log(migrationNumber === latestMigrationNumber);
|
||||||
if (migrationNumber === latestMigrationNumber) {
|
if (migrationNumber === latestMigrationNumber) {
|
||||||
updateProgressBar(migrationNumber, latestMigrationNumber, false, true);
|
updateProgressBar(migrationNumber, latestMigrationNumber, false, true);
|
||||||
console.log('DONE');
|
console.log('DONE');
|
||||||
} else {
|
} else {
|
||||||
updateProgressBar(migrationNumber, latestMigrationNumber, false, false);
|
updateProgressBar(migrationNumber, latestMigrationNumber, false, false);
|
||||||
var newMigrationNumber = direction === 'up' ? migrationNumber + 1 : migrationNumber - 1;
|
var newMigrationNumber = direction === 'up' ? migrationNumber + 1 : migrationNumber - 1;
|
||||||
executeMigration(startingMigrationNumber, newMigrationNumber, latestMigrationNumber);
|
executeMigration(startingMigrationNumber, newMigrationNumber, latestMigrationNumber, direction);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function(data) {
|
error: function(data) {
|
||||||
@ -120,7 +121,7 @@ function updateProgressBar(migrationNumber, latestMigrationNumber, isError, isFi
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isFinished) {
|
if (isFinished) {
|
||||||
$progressBar.find('.progress-bar').hide();
|
$progressBar.hide();
|
||||||
$('#finished-install').show();
|
$('#finished-install').show();
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user