#24862: Patch for GeoDjango to improve error message if database connection is bad -------------------------------------+------------------------------------- Reporter: brycenesbitt | Owner: nobody Type: | Status: new Cleanup/optimization | Component: GIS | Version: 1.8 Severity: Normal | Keywords: PostGIS, GeoDjango, | GIS, Usability Triage Stage: Unreviewed | Has patch: 1 Easy pickings: 1 | UI/UX: 0 -------------------------------------+------------------------------------- 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 ' }}} -- Ticket URL: <https://code.djangoproject.com/ticket/24862> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/055.665b1e8d76b14e0d28af956a55eeb2ff%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.