X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/dae2761137c5ee95daf495e5cdf459fd8c7c17b4..9abb96fa6b87ba2086b0bf32eed0310690931cfe:/lib/setup/SetupClass.php diff --git a/lib/setup/SetupClass.php b/lib/setup/SetupClass.php index 1dd30c81..bf44e04b 100755 --- a/lib/setup/SetupClass.php +++ b/lib/setup/SetupClass.php @@ -235,6 +235,16 @@ class SetupFunctions $oAlParser->createTable($this->oDB, 'address_levels'); } + public function createTableTriggers() + { + info('Create Tables'); + + $sTemplate = file_get_contents(CONST_BasePath.'/sql/table-triggers.sql'); + $sTemplate = $this->replaceSqlPatterns($sTemplate); + + $this->pgsqlRunScript($sTemplate, false); + } + public function createPartitionTables() { info('Create Partition Tables'); @@ -649,13 +659,20 @@ class SetupFunctions private function createSqlFunctions() { $sBasePath = CONST_BasePath.'/sql/functions/'; - $sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql'); + $sTemplate = file_get_contents($sBasePath.'utils.sql'); $sTemplate .= file_get_contents($sBasePath.'normalization.sql'); $sTemplate .= file_get_contents($sBasePath.'importance.sql'); $sTemplate .= file_get_contents($sBasePath.'address_lookup.sql'); $sTemplate .= file_get_contents($sBasePath.'interpolation.sql'); - $sTemplate .= file_get_contents($sBasePath.'place_triggers.sql'); - $sTemplate .= file_get_contents($sBasePath.'placex_triggers.sql'); + if ($this->oDB->tableExists('place')) { + $sTemplate .= file_get_contents($sBasePath.'place_triggers.sql'); + } + if ($this->oDB->tableExists('placex')) { + $sTemplate .= file_get_contents($sBasePath.'placex_triggers.sql'); + } + if ($this->oDB->tableExists('location_postcode')) { + $sTemplate .= file_get_contents($sBasePath.'postcode_triggers.sql'); + } $sTemplate = str_replace('{modulepath}', $this->sModulePath, $sTemplate); if ($this->bEnableDiffUpdates) { $sTemplate = str_replace('RETURN NEW; -- %DIFFUPDATES%', '--', $sTemplate);