#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 [email protected].
To post to this group, send email to [email protected].
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.

Reply via email to