]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/setup/SetupClass.php
move trigger creation later in setup
[nominatim.git] / lib / setup / SetupClass.php
index b96b186b7b2d67eeb1ba980606a27e3bc46499d1..c0a398c8edc962d5a4b1d0156eedb711835be22f 100755 (executable)
@@ -235,7 +235,17 @@ class SetupFunctions
         $oAlParser->createTable($this->oDB, 'address_levels');
     }
 
-    public function createPartitionTables()
+    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');
 
@@ -654,9 +664,15 @@ class SetupFunctions
         $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');
-        $sTemplate .= file_get_contents($sBasePath.'postcode_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);