mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	Fixed #16353 -- don't try to create Site objects on all databases. Refs #15573, #15346. Thanks Aymeric Augustin for the report and the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16868 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -56,14 +56,6 @@ class SpatiaLiteCreation(DatabaseCreation): | ||||
|             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 | ||||
|         for cache_alias in settings.CACHES: | ||||
|   | ||||
| @@ -3,14 +3,21 @@ Creates the default Site object. | ||||
| """ | ||||
|  | ||||
| from django.db.models import signals | ||||
| from django.db import router | ||||
| from django.contrib.sites.models import Site | ||||
| from django.contrib.sites import models as site_app | ||||
|  | ||||
| def create_default_site(app, created_models, verbosity, db, **kwargs): | ||||
|     if Site in created_models: | ||||
|     # Only create the default sites in databases where Django created the table | ||||
|     if Site in created_models and router.allow_syncdb(db, Site) : | ||||
|         if verbosity >= 2: | ||||
|             print "Creating example.com Site object" | ||||
|         s = Site(domain="example.com", name="example.com") | ||||
|         # The default settings set SITE_ID = 1, and some tests in Django's test | ||||
|         # suite rely on this value. However, if database sequences are reused | ||||
|         # (e.g. in the test suite after flush/syncdb), it isn't guaranteed that | ||||
|         # the next id will be 1, so we coerce it. See #15573 and #16353. This | ||||
|         # can also crop up outside of tests - see #15346. | ||||
|         s = Site(pk=1, domain="example.com", name="example.com") | ||||
|         s.save(using=db) | ||||
|     Site.objects.clear_cache() | ||||
|  | ||||
|   | ||||
| @@ -248,14 +248,6 @@ class BaseDatabaseCreation(object): | ||||
|             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 | ||||
|         for cache_alias in settings.CACHES: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user