$oDB = new Nominatim\DB;
+function isReverseOnlyInstallation()
+{
+ global $oDB;
+ return !$oDB->tableExists('search_name');
+}
+
+
echo 'Checking database got created ... ';
-if ($oDB->databaseExists()) {
+if ($oDB->checkConnection()) {
$print_success();
} else {
$print_fail();
'idx_osmline_parent_osm_id',
'idx_place_osm_unique',
'idx_postcode_id',
- 'idx_postcode_postcode',
-
- // sql/indices_search.src.sql
- 'idx_search_name_nameaddress_vector',
- 'idx_search_name_name_vector',
- 'idx_search_name_centroid'
+ 'idx_postcode_postcode'
);
+if (!isReverseOnlyInstallation()) {
+ $aExpectedIndices = array_merge($aExpectedIndices, array(
+ // sql/indices_search.src.sql
+ 'idx_search_name_nameaddress_vector',
+ 'idx_search_name_name_vector',
+ 'idx_search_name_centroid'
+ ));
+}
foreach ($aExpectedIndices as $sExpectedIndex) {
echo "Checking index $sExpectedIndex ... ";
$print_fail();
echo <<< END
Hints:
- * Rerun the setup.php --create-search-indices step
+ * Run './utils/setup.php --create-search-indices --ignore-errors' to
+ create missing indices.
END;
exit(1);
$print_fail();
echo <<< END
At least one index is invalid. That can happen, e.g. when index creation was
- disrupted and later restarted. You should run the index stage of setup again.
+ disrupted and later restarted. You should delete the affected indices and
+ run the index stage of setup again.
See the question 'Can a stopped/killed import process be resumed?' in the
troubleshooting guide.
Affected indices: