mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
move psqlRunScript implementation into cmd lib
Function needed for update.php as well.
This commit is contained in:
38
lib/cmd.php
38
lib/cmd.php
@@ -136,15 +136,53 @@ function info($sMsg)
|
|||||||
|
|
||||||
$aWarnings = [];
|
$aWarnings = [];
|
||||||
|
|
||||||
|
|
||||||
function warn($sMsg)
|
function warn($sMsg)
|
||||||
{
|
{
|
||||||
$GLOBALS['aWarnings'][] = $sMsg;
|
$GLOBALS['aWarnings'][] = $sMsg;
|
||||||
echo date('Y-m-d H:i:s == ').'WARNING: '.$sMsg."\n";
|
echo date('Y-m-d H:i:s == ').'WARNING: '.$sMsg."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function repeatWarnings()
|
function repeatWarnings()
|
||||||
{
|
{
|
||||||
foreach ($GLOBALS['aWarnings'] as $sMsg) {
|
foreach ($GLOBALS['aWarnings'] as $sMsg) {
|
||||||
echo ' * ',$sMsg."\n";
|
echo ' * ',$sMsg."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function runSQLScript($sScript, $bfatal = true, $bVerbose = false, $bIgnoreErrors = false)
|
||||||
|
{
|
||||||
|
// 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 (!$bVerbose) {
|
||||||
|
$sCMD .= ' -q';
|
||||||
|
}
|
||||||
|
if ($bfatal && !$bIgnoreErrors) {
|
||||||
|
$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)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -765,34 +765,12 @@ function pgsqlRunScriptFile($sFilename)
|
|||||||
function pgsqlRunScript($sScript, $bfatal = true)
|
function pgsqlRunScript($sScript, $bfatal = true)
|
||||||
{
|
{
|
||||||
global $aCMDResult;
|
global $aCMDResult;
|
||||||
// Convert database DSN to psql parameters
|
runSQLScript(
|
||||||
$aDSNInfo = DB::parseDSN(CONST_Database_DSN);
|
$sScript,
|
||||||
if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
|
$bfatal,
|
||||||
$sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
|
$aCMDResult['verbose'],
|
||||||
if (!$aCMDResult['verbose']) {
|
$aCMDResult['ignore-errors']
|
||||||
$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)");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pgsqlRunPartitionScript($sTemplate)
|
function pgsqlRunPartitionScript($sTemplate)
|
||||||
|
|||||||
Reference in New Issue
Block a user