move psqlRunScript implementation into cmd lib

Function needed for update.php as well.
This commit is contained in:
Sarah Hoffmann
2017-10-03 10:16:17 +02:00
parent 218b70fd96
commit 8e2ef2842e
2 changed files with 44 additions and 28 deletions

View File

@@ -765,34 +765,12 @@ function pgsqlRunScriptFile($sFilename)
function pgsqlRunScript($sScript, $bfatal = true)
{
global $aCMDResult;
// Convert database DSN to psql parameters
$aDSNInfo = DB::parseDSN(CONST_Database_DSN);
if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
$sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
if (!$aCMDResult['verbose']) {
$sCMD .= ' -q';
}
if ($bfatal && !$aCMDResult['ignore-errors'])
$sCMD .= ' -v ON_ERROR_STOP=1';
$aDescriptors = array(
0 => array('pipe', 'r'),
1 => STDOUT,
2 => STDERR
);
$ahPipes = null;
$hProcess = @proc_open($sCMD, $aDescriptors, $ahPipes);
if (!is_resource($hProcess)) fail('unable to start pgsql');
while (strlen($sScript)) {
$written = fwrite($ahPipes[0], $sScript);
if ($written <= 0) break;
$sScript = substr($sScript, $written);
}
fclose($ahPipes[0]);
$iReturn = proc_close($hProcess);
if ($bfatal && $iReturn > 0) {
fail("pgsql returned with error code ($iReturn)");
}
runSQLScript(
$sScript,
$bfatal,
$aCMDResult['verbose'],
$aCMDResult['ignore-errors']
);
}
function pgsqlRunPartitionScript($sTemplate)