mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-14 18:37:58 +00:00
Added check for hstore extension
This commit is contained in:
committed by
Sarah Hoffmann
parent
38369ca3cf
commit
d4018f2e3b
@@ -174,6 +174,24 @@ class Connection(psycopg2.extensions.connection):
|
||||
|
||||
return (int(version_parts[0]), int(version_parts[1]))
|
||||
|
||||
def hstore_version_tuple(self) -> Tuple[int, int]:
|
||||
""" Return the hstore version installed in the database as a
|
||||
tuple of (major, minor). Assumes that the hstore extension
|
||||
has been installed already.
|
||||
"""
|
||||
with self.cursor() as cur:
|
||||
version = cur.scalar(
|
||||
'SELECT extversion FROM pg_extension WHERE extname = %s',
|
||||
('hstore')
|
||||
)
|
||||
|
||||
version_parts = version.split('.')
|
||||
if len(version_parts) < 2:
|
||||
raise UsageError(f"Error fetching hstore version. Bad format: {version}")
|
||||
|
||||
return (int(version_parts[0]), int(version_parts[1]))
|
||||
|
||||
|
||||
class ConnectionContext(ContextManager[Connection]):
|
||||
""" Context manager of the connection that also provides direct access
|
||||
to the underlying connection.
|
||||
|
||||
@@ -23,7 +23,7 @@ from nominatim.db.async_connection import DBConnection
|
||||
from nominatim.db.sql_preprocessor import SQLPreprocessor
|
||||
from nominatim.tools.exec_utils import run_osm2pgsql
|
||||
from nominatim.errors import UsageError
|
||||
from nominatim.version import POSTGRESQL_REQUIRED_VERSION, POSTGIS_REQUIRED_VERSION
|
||||
from nominatim.version import POSTGRESQL_REQUIRED_VERSION, POSTGIS_REQUIRED_VERSION, HSTORE_REQUIRED_VERSION
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
||||
@@ -47,6 +47,9 @@ def check_existing_database_plugins(dsn: str):
|
||||
_require_version('PostGIS',
|
||||
conn.postgis_version_tuple(),
|
||||
POSTGIS_REQUIRED_VERSION)
|
||||
_require_version('hstore',
|
||||
conn.hstore_version_tuple(),
|
||||
HSTORE_REQUIRED_VERSION)
|
||||
|
||||
|
||||
def setup_database_skeleton(dsn: str, rouser: Optional[str] = None) -> None:
|
||||
|
||||
@@ -38,6 +38,7 @@ NOMINATIM_VERSION = NominatimVersion(4, 3, 0, 0)
|
||||
|
||||
POSTGRESQL_REQUIRED_VERSION = (9, 6)
|
||||
POSTGIS_REQUIRED_VERSION = (2, 2)
|
||||
HSTORE_REQUIRED_VERSION = (1, 3)
|
||||
|
||||
# Cmake sets a variable @GIT_HASH@ by executing 'git --log'. It is not run
|
||||
# on every execution of 'make'.
|
||||
|
||||
Reference in New Issue
Block a user