[1.3.X] 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. Backport of r16027 from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.3.X@16028 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Ian Kelly 2011-04-16 18:43:01 +00:00
parent 05054aba76
commit 79bb9c1456
1 changed files with 8 additions and 0 deletions

View File

@ -374,6 +374,14 @@ class BaseDatabaseCreation(object):
verbosity=max(verbosity - 1, 0),
interactive=False,
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.backends.db import BaseDatabaseCache