]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/setup.php
replace database settings with dotenv variant
[nominatim.git] / utils / setup.php
index 8ad96a9524eac81360106412b00c3070ea1458a0..10d7e15598df2f6ce9bdbf67d3916edc7ba8cf7f 100644 (file)
@@ -1,8 +1,8 @@
 <?php
 
 <?php
 
-require_once(CONST_BasePath.'/lib/init-cmd.php');
-require_once(CONST_BasePath.'/lib/setup/SetupClass.php');
-require_once(CONST_BasePath.'/lib/setup_functions.php');
+require_once(CONST_LibDir.'/init-cmd.php');
+require_once(CONST_LibDir.'/setup/SetupClass.php');
+require_once(CONST_LibDir.'/setup_functions.php');
 ini_set('memory_limit', '800M');
 
 use Nominatim\Setup\SetupFunctions as SetupFunctions;
 ini_set('memory_limit', '800M');
 
 use Nominatim\Setup\SetupFunctions as SetupFunctions;
@@ -38,17 +38,21 @@ $aCMDOptions
    array('disable-token-precalc', '', 0, 1, 0, 0, 'bool', 'Disable name precalculation (EXPERT)'),
    array('import-tiger-data', '', 0, 1, 0, 0, 'bool', 'Import tiger data (not included in \'all\')'),
    array('calculate-postcodes', '', 0, 1, 0, 0, 'bool', 'Calculate postcode centroids'),
    array('disable-token-precalc', '', 0, 1, 0, 0, 'bool', 'Disable name precalculation (EXPERT)'),
    array('import-tiger-data', '', 0, 1, 0, 0, 'bool', 'Import tiger data (not included in \'all\')'),
    array('calculate-postcodes', '', 0, 1, 0, 0, 'bool', 'Calculate postcode centroids'),
-   array('osmosis-init', '', 0, 1, 0, 0, 'bool', 'Generate default osmosis configuration'),
    array('index', '', 0, 1, 0, 0, 'bool', 'Index the data'),
    array('index-noanalyse', '', 0, 1, 0, 0, 'bool', 'Do not perform analyse operations during index (EXPERT)'),
    array('create-search-indices', '', 0, 1, 0, 0, 'bool', 'Create additional indices required for search and update'),
    array('create-country-names', '', 0, 1, 0, 0, 'bool', 'Create default list of searchable country names'),
    array('drop', '', 0, 1, 0, 0, 'bool', 'Drop tables needed for updates, making the database readonly (EXPERIMENTAL)'),
    array('index', '', 0, 1, 0, 0, 'bool', 'Index the data'),
    array('index-noanalyse', '', 0, 1, 0, 0, 'bool', 'Do not perform analyse operations during index (EXPERT)'),
    array('create-search-indices', '', 0, 1, 0, 0, 'bool', 'Create additional indices required for search and update'),
    array('create-country-names', '', 0, 1, 0, 0, 'bool', 'Create default list of searchable country names'),
    array('drop', '', 0, 1, 0, 0, 'bool', 'Drop tables needed for updates, making the database readonly (EXPERIMENTAL)'),
+   array('setup-website', '', 0, 1, 0, 0, 'bool', 'Used to compile environment variables for the website'),
+   array('project-dir', '', 0, 1, 1, 1, 'realpath', 'Base directory for this Nominatim installation'),
   );
 
 // $aCMDOptions passed to getCmdOpt by reference
 getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
 
   );
 
 // $aCMDOptions passed to getCmdOpt by reference
 getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
 
+loadSettings($aCMDResult['project-dir'] ?? false);
+setupHTTPProxy();
+
 $bDidSomething = false;
 
 //*******************************************************
 $bDidSomething = false;
 
 //*******************************************************
@@ -59,12 +63,6 @@ if ($aCMDResult['import-data'] || $aCMDResult['all']) {
     checkInFile($aCMDResult['osm-file']);
 }
 
     checkInFile($aCMDResult['osm-file']);
 }
 
-// osmosis init is no longer supported
-if ($aCMDResult['osmosis-init']) {
-    $bDidSomething = true;
-    echo "Command 'osmosis-init' no longer available, please use utils/update.php --init-updates.\n";
-}
-
 // ******************************************************
 // instantiate Setup class
 $oSetup = new SetupFunctions($aCMDResult);
 // ******************************************************
 // instantiate Setup class
 $oSetup = new SetupFunctions($aCMDResult);
@@ -76,16 +74,11 @@ if ($aCMDResult['create-db'] || $aCMDResult['all']) {
     $oSetup->createDB();
 }
 
     $oSetup->createDB();
 }
 
-$oSetup->connect();
-
 if ($aCMDResult['setup-db'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $oSetup->setupDB();
 }
 
 if ($aCMDResult['setup-db'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $oSetup->setupDB();
 }
 
-// Try accessing the C module, so we know early if something is wrong
-checkModulePresence(); // raises exception on failure
-
 if ($aCMDResult['import-data'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $oSetup->importData($aCMDResult['osm-file']);
 if ($aCMDResult['import-data'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $oSetup->importData($aCMDResult['osm-file']);
@@ -100,6 +93,7 @@ if ($aCMDResult['create-tables'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $oSetup->createTables($aCMDResult['reverse-only']);
     $oSetup->createFunctions();
     $bDidSomething = true;
     $oSetup->createTables($aCMDResult['reverse-only']);
     $oSetup->createFunctions();
+    $oSetup->createTableTriggers();
 }
 
 if ($aCMDResult['create-partition-tables'] || $aCMDResult['all']) {
 }
 
 if ($aCMDResult['create-partition-tables'] || $aCMDResult['all']) {
@@ -137,6 +131,11 @@ if ($aCMDResult['index'] || $aCMDResult['all']) {
     $oSetup->index($aCMDResult['index-noanalyse']);
 }
 
     $oSetup->index($aCMDResult['index-noanalyse']);
 }
 
+if ($aCMDResult['drop']) {
+    $bDidSomething = true;
+    $oSetup->drop($aCMDResult);
+}
+
 if ($aCMDResult['create-search-indices'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $oSetup->createSearchIndices();
 if ($aCMDResult['create-search-indices'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $oSetup->createSearchIndices();
@@ -147,9 +146,9 @@ if ($aCMDResult['create-country-names'] || $aCMDResult['all']) {
     $oSetup->createCountryNames($aCMDResult);
 }
 
     $oSetup->createCountryNames($aCMDResult);
 }
 
-if ($aCMDResult['drop']) {
+if ($aCMDResult['setup-website'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $bDidSomething = true;
-    $oSetup->drop($aCMDResult);
+    $oSetup->setupWebsite();
 }
 
 // ******************************************************
 }
 
 // ******************************************************