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:
parent
e58c73041b
commit
28c2d5fde7
9
TODO
9
TODO
@ -11,15 +11,6 @@ Required for v1.2
|
|||||||
* validate() on a field
|
* validate() on a field
|
||||||
* name/purpose clash with Honza?
|
* name/purpose clash with Honza?
|
||||||
* any overlap with existing methods?
|
* 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
|
Optional for v1.2
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
@ -17,19 +17,9 @@ if not settings.DATABASES:
|
|||||||
"settings.DATABASE_* is deprecated; use settings.DATABASES instead.",
|
"settings.DATABASE_* is deprecated; use settings.DATABASES instead.",
|
||||||
PendingDeprecationWarning
|
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] = {
|
settings.DATABASES[DEFAULT_DB_ALIAS] = {
|
||||||
'ENGINE': engine,
|
'ENGINE': settings.DATABASE_ENGINE,
|
||||||
'HOST': settings.DATABASE_HOST,
|
'HOST': settings.DATABASE_HOST,
|
||||||
'NAME': settings.DATABASE_NAME,
|
'NAME': settings.DATABASE_NAME,
|
||||||
'OPTIONS': settings.DATABASE_OPTIONS,
|
'OPTIONS': settings.DATABASE_OPTIONS,
|
||||||
@ -44,6 +34,15 @@ if not settings.DATABASES:
|
|||||||
if DEFAULT_DB_ALIAS not in settings.DATABASES:
|
if DEFAULT_DB_ALIAS not in settings.DATABASES:
|
||||||
raise ImproperlyConfigured("You must default a '%s' database" % DEFAULT_DB_ALIAS)
|
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)
|
connections = ConnectionHandler(settings.DATABASES)
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,7 +6,13 @@ from django.utils.importlib import import_module
|
|||||||
|
|
||||||
def load_backend(backend_name):
|
def load_backend(backend_name):
|
||||||
try:
|
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:
|
except ImportError, e:
|
||||||
# Look for a fully qualified database backend name
|
# Look for a fully qualified database backend name
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user