mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 02:14:13 +00:00
show latest migration in log and make sure the log is in the correct order
This commit is contained in:
@@ -1,18 +1,24 @@
|
||||
<?php
|
||||
class Migrate extends CI_Controller {
|
||||
|
||||
public function index() {
|
||||
$this->load->library('Migration');
|
||||
public function index() {
|
||||
$this->load->library('Migration');
|
||||
|
||||
if (!$this->migration->latest()) {
|
||||
show_error($this->migration->error_string());
|
||||
$result = 'error';
|
||||
} else {
|
||||
while (file_exists(APPPATH . 'cache/.migration_running')) {
|
||||
sleep(1);
|
||||
}
|
||||
$result = 'success';
|
||||
$result = array();
|
||||
$latest = $this->migration->latest();
|
||||
|
||||
if (!$latest) {
|
||||
show_error($this->migration->error_string());
|
||||
log_message('error', 'Migration failed');
|
||||
$result['status'] = 'error';
|
||||
} else {
|
||||
while (file_exists(APPPATH . 'cache/.migration_running')) {
|
||||
sleep(1);
|
||||
}
|
||||
$result['status'] = 'success';
|
||||
$result['version'] = $latest;
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($result);
|
||||
}
|
||||
echo $result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ $languages = $gt_conf['languages'];
|
||||
// if we come with a get call we can switch the language cookie
|
||||
if (isset($_GET['lang'])) {
|
||||
switch_lang($_GET['lang']);
|
||||
log_message('info', 'Manually switched language to "'.find_by('gettext',$_GET['lang'])['name_en'].'"');
|
||||
log_message('info', 'Manually switched language to "' . find_by('gettext', $_GET['lang'])['name_en'] . '"');
|
||||
header("Location: " . strtok($_SERVER['REQUEST_URI'], '?'));
|
||||
exit();
|
||||
}
|
||||
@@ -44,12 +44,12 @@ if (isset($_GET['lang'])) {
|
||||
if (!isset($_COOKIE[$gt_conf['lang_cookie']])) {
|
||||
|
||||
log_message('info', 'Called Installer index.php');
|
||||
log_message('info', 'With URL: '.$http_scheme.'://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '/');
|
||||
log_message('info', 'From IP: '. $_SERVER['REMOTE_ADDR']);
|
||||
log_message('info', 'With URL: ' . $http_scheme . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '/');
|
||||
log_message('info', 'From IP: ' . $_SERVER['REMOTE_ADDR']);
|
||||
|
||||
$browser_language = _get_client_language();
|
||||
setcookie($gt_conf['lang_cookie'], $browser_language['gettext']);
|
||||
log_message('info', 'Set language cookie to "'.$browser_language['name_en'].'"');
|
||||
log_message('info', 'Set language cookie to "' . $browser_language['name_en'] . '"');
|
||||
header("Location: " . $_SERVER['REQUEST_URI']);
|
||||
exit();
|
||||
}
|
||||
@@ -67,19 +67,23 @@ $websiteurl = $http_scheme . '://' . str_replace("index.php", "", $_SERVER['HTTP
|
||||
|
||||
<script>
|
||||
function log_message(level, message) {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: 'ajax.php',
|
||||
data: {
|
||||
write_to_logfile: 1,
|
||||
log_level: level,
|
||||
log_message: message
|
||||
},
|
||||
success: function(response) {
|
||||
},
|
||||
error: function(error) {
|
||||
console.error("log_message (js) failed: ".error);
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: 'ajax.php',
|
||||
data: {
|
||||
write_to_logfile: 1,
|
||||
log_level: level,
|
||||
log_message: message
|
||||
},
|
||||
success: function(response) {
|
||||
resolve();
|
||||
},
|
||||
error: function(error) {
|
||||
console.error("log_message (js) failed: ", error);
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
await update_dxcc();
|
||||
await installer_lock();
|
||||
|
||||
log_message('info', 'Finish. Installer went through successfully.');
|
||||
await log_message('info', 'Finish. Installer went through successfully.');
|
||||
|
||||
if ($('#logContainer').css('display') == 'none') {
|
||||
// after all install steps went through we can show a success message and redirect to the user/login
|
||||
@@ -138,17 +138,17 @@
|
||||
data: {
|
||||
check_lockfile: 1
|
||||
},
|
||||
success: function(response) {
|
||||
success: async function(response) {
|
||||
if (response != 'installer_locked') {
|
||||
resolve();
|
||||
} else {
|
||||
log_message('error', 'Attention: Installer is locked. Redirect to user/login.');
|
||||
await log_message('error', 'Attention: Installer is locked. Redirect to user/login.');
|
||||
reject(response);
|
||||
window.location.href = "<?php echo str_replace('run.php', '', $websiteurl); ?>" + "index.php/user/login";
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
log_message('error', "Install Lock Check went wrong...");
|
||||
error: async function(error) {
|
||||
await log_message('error', "Install Lock Check went wrong...");
|
||||
reject(error);
|
||||
window.location.href = "<?php echo str_replace('run.php', '', $websiteurl); ?>" + "index.php/user/login";
|
||||
}
|
||||
@@ -161,7 +161,7 @@
|
||||
var field = '#config_file';
|
||||
|
||||
running(field, true);
|
||||
log_message('debug', 'Start writing config.php');
|
||||
await log_message('debug', 'Start writing config.php');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
$.ajax({
|
||||
@@ -171,19 +171,19 @@
|
||||
data: _POST,
|
||||
run_config_file: 1
|
||||
},
|
||||
success: function(response) {
|
||||
success: async function(response) {
|
||||
if (response == 'success') {
|
||||
running(field, false);
|
||||
log_message('debug', 'File: config.php successfully written');
|
||||
await log_message('debug', 'File: config.php successfully written');
|
||||
resolve();
|
||||
} else {
|
||||
running(field, false, true);
|
||||
log_message('error', 'File: Could not write file. Check Permissions.');
|
||||
await log_message('error', 'File: Could not write file. Check Permissions.');
|
||||
reject("<?= __("Could not create application/config/config.php"); ?>");
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
log_message('error', 'File: Could not write file. Ajax failed.');
|
||||
error: async function(error) {
|
||||
await log_message('error', 'File: Could not write file. Ajax failed.');
|
||||
running(field, false, true);
|
||||
reject(error);
|
||||
}
|
||||
@@ -196,7 +196,7 @@
|
||||
var field = '#database_file';
|
||||
|
||||
running(field, true);
|
||||
log_message('debug', 'Start writing database.php');
|
||||
await log_message('debug', 'Start writing database.php');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
$.ajax({
|
||||
@@ -206,19 +206,19 @@
|
||||
data: _POST,
|
||||
run_database_file: 1
|
||||
},
|
||||
success: function(response) {
|
||||
success: async function(response) {
|
||||
if (response == 'success') {
|
||||
running(field, false);
|
||||
log_message('debug', 'File: database.php successfully written');
|
||||
await log_message('debug', 'File: database.php successfully written');
|
||||
resolve();
|
||||
} else {
|
||||
running(field, false, true);
|
||||
log_message('error', 'File: Could not write file. Check Permissions.');
|
||||
await log_message('error', 'File: Could not write file. Check Permissions.');
|
||||
reject("<?= __("Could not create application/config/database.php"); ?>");
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
log_message('error', 'File: Could not write file. Ajax failed.');
|
||||
error: async function(error) {
|
||||
await log_message('error', 'File: Could not write file. Ajax failed.');
|
||||
running(field, false, true);
|
||||
reject(error);
|
||||
}
|
||||
@@ -230,7 +230,7 @@
|
||||
var field = '#database_tables';
|
||||
|
||||
running(field, true);
|
||||
log_message('debug', 'Start creating database structure with assets/install.sql');
|
||||
await log_message('debug', 'Start creating database structure with assets/install.sql');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
$.ajax({
|
||||
@@ -240,20 +240,20 @@
|
||||
data: _POST,
|
||||
run_database_tables: 1
|
||||
},
|
||||
success: function(response) {
|
||||
success: async function(response) {
|
||||
if (response == 'success') {
|
||||
log_message('debug', 'Tables successfully created');
|
||||
await log_message('debug', 'Tables successfully created');
|
||||
running(field, false);
|
||||
resolve();
|
||||
} else {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Creating database tables from assets/install.sql failed. Response: ');
|
||||
await log_message('error', 'Creating database tables from assets/install.sql failed. Response: ' + response);
|
||||
reject("<?= __("Could not create database tables"); ?>");
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
error: async function(error) {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Creating database tables failed. Ajax crashed.');
|
||||
await log_message('error', 'Creating database tables failed. Ajax crashed.');
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
@@ -264,25 +264,26 @@
|
||||
var field = '#database_migrations';
|
||||
|
||||
running(field, true);
|
||||
log_message('debug', 'Start migrating database to the newest version.');
|
||||
await log_message('debug', 'Start migrating database to the newest version.');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
$.ajax({
|
||||
url: "<?php echo $_POST['websiteurl'] ?? $websiteurl; ?>" + "index.php/migrate",
|
||||
success: function(response) {
|
||||
if (response == 'success') {
|
||||
dataType: 'json',
|
||||
success: async function(response) {
|
||||
if (response.status == 'success') {
|
||||
running(field, false);
|
||||
log_message('debug', 'Database successfully created.');
|
||||
await log_message('debug', 'Database successfully migrated. Latest Version: ' + response.version);
|
||||
resolve();
|
||||
} else {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Could not migrate database.');
|
||||
await log_message('error', 'Could not migrate database. Response: ' + response.status);
|
||||
reject("<?= __("Could not run database migrations"); ?>");
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
error: async function(error) {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Could not migrate database. Ajax crashed.');
|
||||
await log_message('error', 'Could not migrate database. Ajax crashed.');
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
@@ -291,27 +292,26 @@
|
||||
|
||||
async function update_dxcc() {
|
||||
var field = '#update_dxcc';
|
||||
await log_message('debug', 'Start updating DXCC database. This can take a moment or two... Please wait');
|
||||
running(field, true);
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
running(field, true);
|
||||
log_message('debug', 'Start updating DXCC database. This can take a moment or two... Please wait');
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo $_POST['websiteurl'] ?? $websiteurl; ?>" + "index.php/update/dxcc",
|
||||
success: function(response) {
|
||||
success: async function(response) {
|
||||
if (response == 'success') {
|
||||
running(field, false);
|
||||
log_message('debug', 'Successfully update DXCC database');
|
||||
await log_message('debug', 'Successfully update DXCC database');
|
||||
resolve();
|
||||
} else {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Could not update DXCC data.');
|
||||
await log_message('error', 'Could not update DXCC data.');
|
||||
reject("<?= __("Could not update DXCC data"); ?>");
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
error: async function(error) {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Could not update DXCC data. Ajax crashed.');
|
||||
await log_message('error', 'Could not update DXCC data. Ajax crashed.');
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
@@ -320,7 +320,7 @@
|
||||
|
||||
async function installer_lock() {
|
||||
var field = '#installer_lock';
|
||||
log_message('debug', 'Try to create .lock file for the installer');
|
||||
await log_message('debug', 'Try to create .lock file for the installer');
|
||||
|
||||
running(field, true);
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -330,20 +330,20 @@
|
||||
data: {
|
||||
run_installer_lock: 1
|
||||
},
|
||||
success: function(response) {
|
||||
success: async function(response) {
|
||||
if (response == 'success') {
|
||||
running(field, false);
|
||||
log_message('debug', 'Successfully created .lock file in folder /install');
|
||||
await log_message('debug', 'Successfully created .lock file in folder /install');
|
||||
resolve();
|
||||
} else {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Could not create .lock file.');
|
||||
await log_message('error', 'Could not create .lock file.');
|
||||
reject("<?= __("Could not create install/.lock file"); ?>");
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
error: async function(error) {
|
||||
running(field, false, true);
|
||||
log_message('error', 'Could not create .lock file. Ajax crashed');
|
||||
await log_message('error', 'Could not create .lock file. Ajax crashed');
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -235,7 +235,7 @@ class CI_Migration {
|
||||
else
|
||||
{
|
||||
// Well, there's nothing to migrate then ...
|
||||
return TRUE;
|
||||
return $current_version;
|
||||
}
|
||||
|
||||
// Validate all available migrations within our target range.
|
||||
|
||||
Reference in New Issue
Block a user