port db update improvements from zap
This commit is contained in:
parent
98b6362c07
commit
1da4602567
@ -58,10 +58,15 @@ class DB_Upgrade {
|
|||||||
|
|
||||||
|
|
||||||
$c = new $cls();
|
$c = new $cls();
|
||||||
|
|
||||||
$retval = $c->run();
|
$retval = $c->run();
|
||||||
|
|
||||||
if($retval != UPDATE_SUCCESS) {
|
if($retval != UPDATE_SUCCESS) {
|
||||||
|
|
||||||
|
|
||||||
|
$source = t('Source code of failed update: ') . "\n\n" . @file_get_contents('Zotlabs/Update/' . $s . '.php');
|
||||||
|
|
||||||
|
|
||||||
// Prevent sending hundreds of thousands of emails by creating
|
// Prevent sending hundreds of thousands of emails by creating
|
||||||
// a lockfile.
|
// a lockfile.
|
||||||
|
|
||||||
@ -86,7 +91,9 @@ class DB_Upgrade {
|
|||||||
'$sitename' => \App::$config['system']['sitename'],
|
'$sitename' => \App::$config['system']['sitename'],
|
||||||
'$siteurl' => z_root(),
|
'$siteurl' => z_root(),
|
||||||
'$update' => $x,
|
'$update' => $x,
|
||||||
'$error' => sprintf( t('Update %s failed. See error logs.'), $x)
|
'$error' => sprintf( t('Update %s failed. See error logs.'), $x),
|
||||||
|
'$baseurl' => z_root(),
|
||||||
|
'$source' => $source
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@ -19,7 +19,47 @@ class Dbsync {
|
|||||||
info( t('Update has been marked successful') . EOL);
|
info( t('Update has been marked successful') . EOL);
|
||||||
goaway(z_root() . '/admin/dbsync');
|
goaway(z_root() . '/admin/dbsync');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(argc() > 3 && intval(argv(3)) && argv(2) === 'verify') {
|
||||||
|
|
||||||
|
$s = '_' . intval(argv(3));
|
||||||
|
$cls = '\\Zotlabs\Update\\' . $s ;
|
||||||
|
if(class_exists($cls)) {
|
||||||
|
$c = new $cls();
|
||||||
|
if(method_exists($c,'verify')) {
|
||||||
|
$retval = $c->verify();
|
||||||
|
if($retval === UPDATE_FAILED) {
|
||||||
|
$o .= sprintf( t('Verification of update %s failed. Check system logs.'), $s);
|
||||||
|
}
|
||||||
|
elseif($retval === UPDATE_SUCCESS) {
|
||||||
|
$o .= sprintf( t('Update %s was successfully applied.'), $s);
|
||||||
|
set_config('database',$s, 'success');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$o .= sprintf( t('Verifying update %s did not return a status. Unknown if it succeeded.'), $s);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$o .= sprintf( t('Update %s does not contain a verification function.'), $s );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$o .= sprintf( t('Update function %s could not be found.'), $s);
|
||||||
|
|
||||||
|
return $o;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// remove the old style config if it exists
|
||||||
|
del_config('database', 'update_r' . intval(argv(3)));
|
||||||
|
set_config('database', '_' . intval(argv(3)), 'success');
|
||||||
|
if(intval(get_config('system','db_version')) < intval(argv(3)))
|
||||||
|
set_config('system','db_version',intval(argv(3)));
|
||||||
|
info( t('Update has been marked successful') . EOL);
|
||||||
|
goaway(z_root() . '/admin/dbsync');
|
||||||
|
}
|
||||||
|
|
||||||
if(argc() > 2 && intval(argv(2))) {
|
if(argc() > 2 && intval(argv(2))) {
|
||||||
$x = intval(argv(2));
|
$x = intval(argv(2));
|
||||||
$s = '_' . $x;
|
$s = '_' . $x;
|
||||||
@ -28,14 +68,14 @@ class Dbsync {
|
|||||||
$c = new $cls();
|
$c = new $cls();
|
||||||
$retval = $c->run();
|
$retval = $c->run();
|
||||||
if($retval === UPDATE_FAILED) {
|
if($retval === UPDATE_FAILED) {
|
||||||
$o .= sprintf( t('Executing %s failed. Check system logs.'), $s);
|
$o .= sprintf( t('Executing update procedure %s failed. Check system logs.'), $s);
|
||||||
}
|
}
|
||||||
elseif($retval === UPDATE_SUCCESS) {
|
elseif($retval === UPDATE_SUCCESS) {
|
||||||
$o .= sprintf( t('Update %s was successfully applied.'), $s);
|
$o .= sprintf( t('Update %s was successfully applied.'), $s);
|
||||||
set_config('database',$s, 'success');
|
set_config('database',$s, 'success');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $s);
|
$o .= sprintf( t('Update %s did not return a status. It cannot be determined if it was successful.'), $s);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$o .= sprintf( t('Update function %s could not be found.'), $s);
|
$o .= sprintf( t('Update function %s could not be found.'), $s);
|
||||||
@ -59,6 +99,7 @@ class Dbsync {
|
|||||||
'$banner' => t('Failed Updates'),
|
'$banner' => t('Failed Updates'),
|
||||||
'$desc' => '',
|
'$desc' => '',
|
||||||
'$mark' => t('Mark success (if update was manually applied)'),
|
'$mark' => t('Mark success (if update was manually applied)'),
|
||||||
|
'$verify' => t('Attempt to verify this update if a verification procedure exists'),
|
||||||
'$apply' => t('Attempt to execute this update step automatically'),
|
'$apply' => t('Attempt to execute this update step automatically'),
|
||||||
'$failed' => $failed
|
'$failed' => $failed
|
||||||
));
|
));
|
||||||
|
@ -1,13 +1,22 @@
|
|||||||
Hey,
|
Apologies but this may be urgent.
|
||||||
I'm the web server at {{$sitename}};
|
|
||||||
|
This is the web server at {{$sitename}};
|
||||||
|
|
||||||
The Hubzilla developers released update {{$update}} recently,
|
The project developers released update {{$update}} recently,
|
||||||
but when I tried to install it, something went terribly wrong.
|
but during the attempt to automatically install it, something went terribly wrong.
|
||||||
This needs to be fixed soon and it requires human intervention.
|
This needs to be fixed soon and it requires human intervention.
|
||||||
Please contact a project developer if you can not figure out how to
|
Please contact a project developer if you can not figure out how to
|
||||||
fix it on your own. My database might be invalid.
|
fix it on your own. Your web server database configuration might be invalid.
|
||||||
|
|
||||||
The error message is '{{$error}}'.
|
The error message is '{{$error}}'.
|
||||||
|
|
||||||
|
You may attempt to re-apply this update by visiting
|
||||||
|
|
||||||
|
{{$baseurl}}/admin/dbsync
|
||||||
|
|
||||||
|
while logged into the admin account.
|
||||||
|
|
||||||
|
{{$source}}
|
||||||
|
|
||||||
Apologies for the inconvenience,
|
Apologies for the inconvenience,
|
||||||
your web server at {{$siteurl}}
|
your web server at {{$siteurl}}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
<h4>{{$f}}</h4>
|
<h4>{{$f}}</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="{{$base}}/admin/dbsync/mark/{{$f}}">{{$mark}}</a></li>
|
<li><a href="{{$base}}/admin/dbsync/mark/{{$f}}">{{$mark}}</a></li>
|
||||||
|
<li><a href="{{$base}}/admin/dbsync/verify/{{$f}}">{{$verify}}</a></li>
|
||||||
<li><a href="{{$base}}/admin/dbsync/{{$f}}">{{$apply}}</a></li>
|
<li><a href="{{$base}}/admin/dbsync/{{$f}}">{{$apply}}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user