1
0
mirror of https://github.com/django/django.git synced 2025-07-05 02:09:13 +00:00

[soc2009/multidb] Modified database ENGINE handling to allow (with warnings) for short-form engine names in a DATABASES dictionary. Patch from Russell Keith-Magee.

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/multidb@11781 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Alex Gaynor 2009-11-26 17:48:41 +00:00
parent e58c73041b
commit 28c2d5fde7
3 changed files with 17 additions and 21 deletions

9
TODO
View File

@ -11,15 +11,6 @@ Required for v1.2
* validate() on a field
* name/purpose clash with Honza?
* any overlap with existing methods?
* Check test failures with old-style (non-multi-db) settings file
* custom_pk
* backends
* Check test failures with MySQL MyISAM
* serializers_regress
* fixtures
* lookup
* transactions
* model_regress
Optional for v1.2
~~~~~~~~~~~~~~~~~

View File

@ -18,18 +18,8 @@ if not settings.DATABASES:
PendingDeprecationWarning
)
if settings.DATABASE_ENGINE in ("postgresql", "postgresql_psycopg2",
"sqlite3", "mysql", "oracle"):
engine = "django.db.backends.%s" % settings.DATABASE_ENGINE
warnings.warn(
"Short names for DATABASE_ENGINE are deprecated; prepend with 'django.db.backends.'",
PendingDeprecationWarning
)
else:
engine = settings.DATABASE_ENGINE
settings.DATABASES[DEFAULT_DB_ALIAS] = {
'ENGINE': engine,
'ENGINE': settings.DATABASE_ENGINE,
'HOST': settings.DATABASE_HOST,
'NAME': settings.DATABASE_NAME,
'OPTIONS': settings.DATABASE_OPTIONS,
@ -44,6 +34,15 @@ if not settings.DATABASES:
if DEFAULT_DB_ALIAS not in settings.DATABASES:
raise ImproperlyConfigured("You must default a '%s' database" % DEFAULT_DB_ALIAS)
for database in settings.DATABASES.values():
if database['ENGINE'] in ("postgresql", "postgresql_psycopg2", "sqlite3", "mysql", "oracle"):
database['ENGINE'] = "django.db.backends.%s" % database['ENGINE']
import warnings
warnings.warn(
"Short names for DATABASE_ENGINE are deprecated; prepend with 'django.db.backends.'",
PendingDeprecationWarning
)
connections = ConnectionHandler(settings.DATABASES)

View File

@ -6,7 +6,13 @@ from django.utils.importlib import import_module
def load_backend(backend_name):
try:
return import_module('.base', 'django.db.backends.%s' % backend_name)
module = import_module('.base', 'django.db.backends.%s' % backend_name)
import warnings
warnings.warn(
"Short names for DATABASE_ENGINE are deprecated; prepend with 'django.db.backends.'",
PendingDeprecationWarning
)
return module
except ImportError, e:
# Look for a fully qualified database backend name
try: