Opened 10 years ago
Last modified 10 years ago
#24862 closed Cleanup/optimization
Patch for GeoDjango to improve error message if database connection is bad — at Initial Version
Reported by: | brycenesbitt | Owned by: | nobody |
---|---|---|---|
Component: | GIS | Version: | dev |
Severity: | Normal | Keywords: | PostGIS, GeoDjango, GIS, Usability |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | yes |
Easy pickings: | yes | UI/UX: | no |
Description
For a project with GeoDjango fi the database is completely down, you'll get exception:
django.core.exceptions.ImproperlyConfigured: Cannot determine PostGIS version for database "umap" . GeoDjango requires at least PostGIS version 1.3. Was the database created from a spatial database template?
This patch first does a trivial database connection to flesh out the real exception, before checking the PostGIS version number:
*************** *** 246,256 **** # comprising user-supplied values for the major, minor, and # subminor revision of PostGIS. - - # First connect to the database trivially - # This prevents raising a GeoDjango exception below if the connection is bad - with self.connection.temporary_connection() as cursor: - cursor.execute('SELECT version()') - - # Now check PostGIS if hasattr(settings, 'POSTGIS_VERSION'): version = settings.POSTGIS_VERSION --- 246,249 ---- *************** *** 260,265 **** except DatabaseError: raise ImproperlyConfigured( ! 'Cannot determine PostGIS version for database "%s" ' ! 'using command "SELECT postgis_lib_version()". ' 'GeoDjango requires at least PostGIS version 1.3. ' 'Was the database created from a spatial database ' --- 253,257 ---- except DatabaseError: raise ImproperlyConfigured( ! 'Cannot determine PostGIS version for database "%s". ' 'GeoDjango requires at least PostGIS version 1.3. ' 'Was the database created from a spatial database '
Note:
See TracTickets
for help on using tickets.