]> git.openstreetmap.org Git - nominatim.git/commitdiff
add setup option to ignore SQL errors
authorSarah Hoffmann <lonvia@denofr.de>
Tue, 13 May 2014 21:23:31 +0000 (23:23 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Tue, 13 May 2014 21:23:31 +0000 (23:23 +0200)
needed when restoring partial backups

utils/setup.php

index e256289cd6cd985373b2224fa3fa5afed1b2395a..a1d8ae5db9ef1d122c11ca9a55e6df41773d0e08 100755 (executable)
@@ -22,6 +22,7 @@
                array('create-functions', '', 0, 1, 0, 0, 'bool', 'Create functions'),
                array('enable-diff-updates', '', 0, 1, 0, 0, 'bool', 'Turn on the code required to make diff updates work'),
                array('enable-debug-statements', '', 0, 1, 0, 0, 'bool', 'Include debug warning statements in pgsql commands'),
                array('create-functions', '', 0, 1, 0, 0, 'bool', 'Create functions'),
                array('enable-diff-updates', '', 0, 1, 0, 0, 'bool', 'Turn on the code required to make diff updates work'),
                array('enable-debug-statements', '', 0, 1, 0, 0, 'bool', 'Include debug warning statements in pgsql commands'),
+               array('ignore-errors', '', 0, 1, 0, 0, 'bool', 'Continue import even when errors in SQL are present (EXPERT)'),
                array('create-minimal-tables', '', 0, 1, 0, 0, 'bool', 'Create minimal main tables'),
                array('create-tables', '', 0, 1, 0, 0, 'bool', 'Create main tables'),
                array('create-partition-tables', '', 0, 1, 0, 0, 'bool', 'Create required partition tables'),
                array('create-minimal-tables', '', 0, 1, 0, 0, 'bool', 'Create minimal main tables'),
                array('create-tables', '', 0, 1, 0, 0, 'bool', 'Create main tables'),
                array('create-partition-tables', '', 0, 1, 0, 0, 'bool', 'Create required partition tables'),
 
        function pgsqlRunScript($sScript)
        {
 
        function pgsqlRunScript($sScript)
        {
+               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'];
                // 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'];
-               $sCMD .= ' -v ON_ERROR_STOP=1';
+               if (!$aCMDResult['ignore-errors'])
+                       $sCMD .= ' -v ON_ERROR_STOP=1';
                $aDescriptors = array(
                        0 => array('pipe', 'r'),
                        1 => STDOUT, 
                $aDescriptors = array(
                        0 => array('pipe', 'r'),
                        1 => STDOUT,