Don't initialize PostGIS-specific stuff for non-db connections

Refs #16969.
This commit is contained in:
Claude Paroz 2013-11-09 11:21:53 +01:00
parent 3c10d1e64f
commit 7e714827ea
2 changed files with 7 additions and 4 deletions

View File

@ -1,3 +1,4 @@
from django.db.backends.creation import NO_DB_ALIAS
from django.db.backends.postgresql_psycopg2.base import DatabaseWrapper as Psycopg2DatabaseWrapper
from django.contrib.gis.db.backends.postgis.creation import PostGISCreation
from django.contrib.gis.db.backends.postgis.introspection import PostGISIntrospection
@ -7,6 +8,7 @@ from django.contrib.gis.db.backends.postgis.operations import PostGISOperations
class DatabaseWrapper(Psycopg2DatabaseWrapper):
def __init__(self, *args, **kwargs):
super(DatabaseWrapper, self).__init__(*args, **kwargs)
if kwargs.get('alias', '') != NO_DB_ALIAS:
self.creation = PostGISCreation(self)
self.ops = PostGISOperations(self)
self.introspection = PostGISIntrospection(self)

View File

@ -14,6 +14,7 @@ from .utils import truncate_name
# The prefix to put on the default database name when creating
# the test database.
TEST_DATABASE_PREFIX = 'test_'
NO_DB_ALIAS = '__no_db__'
class BaseDatabaseCreation(object):
@ -44,7 +45,7 @@ class BaseDatabaseCreation(object):
backend = load_backend(settings_dict['ENGINE'])
nodb_connection = backend.DatabaseWrapper(
settings_dict,
alias='__no_db__',
alias=NO_DB_ALIAS,
allow_thread_sharing=False)
return nodb_connection