Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Improved error message when DATABASE_ENGINE is invalid. It now displa…

…ys a list of all available database backends

git-svn-id: http://code.djangoproject.com/svn/django/trunk@215 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 5874952a8e799783c16e87e427fc13272f581843 1 parent 258afd8
@adrianholovaty adrianholovaty authored
Showing with 8 additions and 1 deletion.
  1. +8 −1 django/core/db/__init__.py
View
9 django/core/db/__init__.py
@@ -18,8 +18,15 @@
try:
dbmod = __import__('django.core.db.backends.%s' % DATABASE_ENGINE, '', '', [''])
except ImportError:
+ # The database backend wasn't found. Display a helpful error message
+ # listing all possible database backends.
from django.core.exceptions import ImproperlyConfigured
- raise ImproperlyConfigured, "Your DATABASE_ENGINE setting, %r, is invalid. Is it spelled correctly?" % DATABASE_ENGINE
+ import os
+ backend_dir = os.path.join(__path__[0], 'backends')
+ available_backends = [f[:-3] for f in os.listdir(backend_dir) if f.endswith('.py') and not f.startswith('__init__')]
+ available_backends.sort()
+ raise ImproperlyConfigured, "Your DATABASE_ENGINE setting, %r, is invalid. Is it spelled correctly? Available options are: %s" % \
+ (DATABASE_ENGINE, ', '.join(map(repr, available_backends)))
DatabaseError = dbmod.DatabaseError
db = dbmod.DatabaseWrapper()
Please sign in to comment.
Something went wrong with that request. Please try again.