Fixed #24862 -- Improved PostGIS database connection error message

Thanks brycenesbitt for the patch.
This commit is contained in:
Sylvain Fankhauser 2015-06-05 12:41:51 +02:00 committed by Claude Paroz
parent 541f4ea546
commit 0a89915783
1 changed files with 7 additions and 1 deletions

View File

@ -150,11 +150,17 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations):
if hasattr(settings, 'POSTGIS_VERSION'): if hasattr(settings, 'POSTGIS_VERSION'):
version = settings.POSTGIS_VERSION version = settings.POSTGIS_VERSION
else: else:
# Run a basic query to check the status of the connection so we're
# sure we only raise the error below if the problem comes from
# PostGIS and not from PostgreSQL itself (see #24862).
self._get_postgis_func('version')
try: try:
vtup = self.postgis_version_tuple() vtup = self.postgis_version_tuple()
except ProgrammingError: except ProgrammingError:
raise ImproperlyConfigured( raise ImproperlyConfigured(
'Cannot determine PostGIS version for database "%s". ' 'Cannot determine PostGIS version for database "%s" '
'using command "SELECT postgis_lib_version()". '
'GeoDjango requires at least PostGIS version 2.0. ' 'GeoDjango requires at least PostGIS version 2.0. '
'Was the database created from a spatial database ' 'Was the database created from a spatial database '
'template?' % self.connection.settings_dict['NAME'] 'template?' % self.connection.settings_dict['NAME']