Django

Code

Changeset 215

Show
Ignore:
Timestamp:
07/19/05 14:04:12 (3 years ago)
Author:
adrian
Message:

Improved error message when DATABASE_ENGINE is invalid. It now displays a list of all available database backends

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/db/__init__.py

    r161 r215  
    1919    dbmod = __import__('django.core.db.backends.%s' % DATABASE_ENGINE, '', '', ['']) 
    2020except ImportError: 
     21    # The database backend wasn't found. Display a helpful error message 
     22    # listing all possible database backends. 
    2123    from django.core.exceptions import ImproperlyConfigured 
    22     raise ImproperlyConfigured, "Your DATABASE_ENGINE setting, %r, is invalid. Is it spelled correctly?" % DATABASE_ENGINE 
     24    import os 
     25    backend_dir = os.path.join(__path__[0], 'backends') 
     26    available_backends = [f[:-3] for f in os.listdir(backend_dir) if f.endswith('.py') and not f.startswith('__init__')] 
     27    available_backends.sort() 
     28    raise ImproperlyConfigured, "Your DATABASE_ENGINE setting, %r, is invalid. Is it spelled correctly? Available options are: %s" % \ 
     29        (DATABASE_ENGINE, ', '.join(map(repr, available_backends))) 
    2330 
    2431DatabaseError = dbmod.DatabaseError