feat(updater): new backup dir + save sql
Some checks are pending
/ test (push) Waiting to run

This commit is contained in:
Florian Schmitt 2025-03-25 20:25:01 +03:00
parent 450dda6997
commit ff56e0fb09

View file

@ -307,15 +307,14 @@ function removePhpFpmConfig($user)
unlink($phpConfFile); unlink($phpConfFile);
exec('service ' . $_SERVER['phpservice'] . ' reload', $output); exec('service ' . $_SERVER['phpservice'] . ' reload', $output);
} }
function saveSql($srcDir, $destDir) function saveSql($wikiDir, $backuptDir)
{ {
$output = '== Save mysql database ==========='. "\n"; $user = posix_getpwuid(fileowner($wikiDir . '/wakka.config.php'))['name'];
$user = posix_getpwuid(fileowner($destDir . '/wakka.config.php'))['name'];
$sudo = 'sudo -u ' . $user . ' '; $sudo = 'sudo -u ' . $user . ' ';
$wakkaConfig = []; $wakkaConfig = [];
include_once($destDir.'/wakka.config.php'); include_once($wikiDir.'/wakka.config.php');
exec($sudo . 'mysqldump -u'.$wakkaConfig['mysql_user'].' -p'.$wakkaConfig['mysql_password'].' '.$wakkaConfig['mysql_database'].' '.$wakkaConfig['table_prefix'].'acls, '.$wakkaConfig['table_prefix'].'links '.$wakkaConfig['table_prefix'].'nature '.$wakkaConfig['table_prefix'].'pages '.$wakkaConfig['table_prefix'].'referrers '.$wakkaConfig['table_prefix'].'triples '.$wakkaConfig['table_prefix'].'usersname > ' . $destDir.'/database.sql'); exec($sudo . 'mysqldump -u'.$wakkaConfig['mysql_user'].' -p'.$wakkaConfig['mysql_password'].' '.$wakkaConfig['mysql_database'].' '.$wakkaConfig['table_prefix'].'acls, '.$wakkaConfig['table_prefix'].'links '.$wakkaConfig['table_prefix'].'nature '.$wakkaConfig['table_prefix'].'pages '.$wakkaConfig['table_prefix'].'referrers '.$wakkaConfig['table_prefix'].'triples '.$wakkaConfig['table_prefix'].'usersname > ' . $backupDir.'/database.sql');
return '== Mysql database saved in '.$backupDir.'/database.sql ==========='. "\n";
} }
function upgradeWiki($srcDir, $destDir) function upgradeWiki($srcDir, $destDir)
@ -334,24 +333,25 @@ function upgradeWiki($srcDir, $destDir)
exit($output); exit($output);
return; return;
} else { } else {
exec($sudo . 'mkdir -p ' . $tmpbackupDir); exec('mkdir -p ' . $tmpbackupDir);
} }
$output .= '==== Move files to temporary backup dir ' . $tmpbackupDir . ' ' . $bars; $output .= '==== Move files to temporary backup dir ' . $tmpbackupDir . ' ' . $bars;
foreach ($filesToMove as $f) { foreach ($filesToMove as $f) {
if (file_exists($destDir . '/' . $f)) { if (file_exists($destDir . '/' . $f)) {
exec($sudo . 'mv ' . $destDir . '/' . $f . ' ' . $tmpbackupDir . '/' . $f); exec('mv ' . $destDir . '/' . $f . ' ' . $tmpbackupDir . '/' . $f);
} else { } else {
$output .= 'File not found "' . $f . '"' . "\n"; $output .= 'File not found "' . $f . '"' . "\n";
} }
} }
foreach ($filesToCopy as $f) { foreach ($filesToCopy as $f) {
if (file_exists($destDir . '/' . $f)) { if (file_exists($destDir . '/' . $f)) {
exec($sudo . 'cp -rf ' . $destDir . '/' . $f . ' ' . $tmpbackupDir . '/' . $f); exec('cp -rf ' . $destDir . '/' . $f . ' ' . $tmpbackupDir . '/' . $f);
} else { } else {
$output .= 'File not found "' . $f . '"' . "\n"; $output .= 'File not found "' . $f . '"' . "\n";
} }
} }
$output .= '==== End Move files to temporary backup dir ' . $tmpbackupDir . ' ' . $bars; $output .= '==== End Move files to temporary backup dir ' . $tmpbackupDir . ' ' . $bars;
$output .= saveSql($destDir, $tmpbackupDir);
$output .= '==== Update to latest sources ' . $bars; $output .= '==== Update to latest sources ' . $bars;
foreach ($filesToMove as $f) { foreach ($filesToMove as $f) {
if (file_exists($srcDir . '/' . $f)) { if (file_exists($srcDir . '/' . $f)) {
@ -360,15 +360,15 @@ function upgradeWiki($srcDir, $destDir)
$output .= 'File not found "' . $f . '"' . "\n"; $output .= 'File not found "' . $f . '"' . "\n";
} }
} }
runMigrations($sudo, $destDir); runUpgrades($sudo, $destDir);
$output .= '==== End Update to latest sources ' . $bars; $output .= '==== End Update to latest sources ' . $bars;
$output .= '== End update wiki in path: ' . $destDir . ' ' . $bars; $output .= '== End update wiki in path: ' . $destDir . ' ' . $bars;
return $output; return $output;
} }
function runMigrations($sudo, $destDir) function runUpgrades($sudo, $destDir)
{ {
exec('pushd '.$destDir.' && '.$sudo.' ./yeswicli migrate && popd'); exec('pushd '.$destDir.' && '.$sudo.' ./yeswicli upgrade && '.$sudo.' ./yeswicli migrate && popd');
} }
function copyYesWikiFiles($domain, $user, $dbUser, $herseUser = null, $hersePass = null, $nossl = null) function copyYesWikiFiles($domain, $user, $dbUser, $herseUser = null, $hersePass = null, $nossl = null)