Fixed #15573: Forced the default site id to be 1 when creating test databases, to prevent a large number of errors when running the tests using the oracle backend.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16027 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Ian Kelly 2011-04-15 21:49:22 +00:00
parent 13bb06984c
commit d3c08fd813
1 changed files with 8 additions and 0 deletions

View File

@ -247,6 +247,14 @@ class BaseDatabaseCreation(object):
verbosity=max(verbosity - 1, 0), verbosity=max(verbosity - 1, 0),
interactive=False, interactive=False,
database=self.connection.alias) database=self.connection.alias)
# One effect of calling syncdb followed by flush is that the id of the
# default site may or may not be 1, depending on how the sequence was
# reset. If the sites app is loaded, then we coerce it.
from django.db.models import get_model
Site = get_model('sites', 'Site')
if Site is not None and Site.objects.using(self.connection.alias).count() == 1:
Site.objects.using(self.connection.alias).update(id=settings.SITE_ID)
from django.core.cache import get_cache from django.core.cache import get_cache
from django.core.cache.backends.db import BaseDatabaseCache from django.core.cache.backends.db import BaseDatabaseCache