hopefully solve db update issues bug #182
This commit is contained in:
parent
cc5974e6c2
commit
06096486d4
2 changed files with 19 additions and 9 deletions
17
boot.php
17
boot.php
|
@ -539,6 +539,8 @@ function check_config(&$a) {
|
||||||
$current = intval(DB_UPDATE_VERSION);
|
$current = intval(DB_UPDATE_VERSION);
|
||||||
if(($stored < $current) && file_exists('update.php')) {
|
if(($stored < $current) && file_exists('update.php')) {
|
||||||
|
|
||||||
|
load_config('database');
|
||||||
|
|
||||||
// We're reporting a different version than what is currently installed.
|
// We're reporting a different version than what is currently installed.
|
||||||
// Run any existing update scripts to bring the database up to current.
|
// Run any existing update scripts to bring the database up to current.
|
||||||
|
|
||||||
|
@ -552,6 +554,21 @@ function check_config(&$a) {
|
||||||
|
|
||||||
for($x = $stored; $x < $current; $x ++) {
|
for($x = $stored; $x < $current; $x ++) {
|
||||||
if(function_exists('update_' . $x)) {
|
if(function_exists('update_' . $x)) {
|
||||||
|
|
||||||
|
// There could be a lot of processes running or about to run.
|
||||||
|
// We want exactly one process to run the update command.
|
||||||
|
// So store the fact that we're taking responsibility
|
||||||
|
// after first checking to see if somebody else already has.
|
||||||
|
|
||||||
|
// If the update fails or times-out completely you may need to
|
||||||
|
// delete the config entry to try again.
|
||||||
|
|
||||||
|
if(get_config('database','update_' . $x))
|
||||||
|
break;
|
||||||
|
set_config('database','update_' . $x, '1');
|
||||||
|
|
||||||
|
// call the specific update
|
||||||
|
|
||||||
$func = 'update_' . $x;
|
$func = 'update_' . $x;
|
||||||
$func($a);
|
$func($a);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,16 +5,9 @@
|
||||||
*/
|
*/
|
||||||
require_once("include/remoteupdate.php");
|
require_once("include/remoteupdate.php");
|
||||||
|
|
||||||
function admin_init(&$a) {
|
|
||||||
if(!is_site_admin()) {
|
|
||||||
notice( t('Permission denied.') . EOL);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function admin_post(&$a){
|
function admin_post(&$a){
|
||||||
if(!is_site_admin()) {
|
if(!is_site_admin()) {
|
||||||
return login(false);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// urls
|
// urls
|
||||||
|
@ -672,7 +665,7 @@ function admin_page_logs(&$a){
|
||||||
function admin_page_remoteupdate_post(&$a) {
|
function admin_page_remoteupdate_post(&$a) {
|
||||||
// this function should be called via ajax post
|
// this function should be called via ajax post
|
||||||
if(!is_site_admin()) {
|
if(!is_site_admin()) {
|
||||||
return login(false);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue