Ticket #15255: 15255.diff

File 15255.diff, 3.3 KB (added by aaugustin, 4 years ago)
  • django/db/backends/creation.py

     
    380380        for cache_alias in settings.CACHES:
    381381            cache = get_cache(cache_alias)
    382382            if isinstance(cache, BaseDatabaseCache):
    383                 from django.db import router
    384                 if router.allow_syncdb(self.connection.alias, cache.cache_model_class):
    385                     call_command('createcachetable', cache._table, database=self.connection.alias)
     383                call_command('createcachetable', cache._table, database=self.connection.alias)
    386384
    387385        # Get a cursor (even though we don't need one yet). This has
    388386        # the side effect of initializing the test database.
  • django/core/management/commands/createcachetable.py

     
    11from optparse import make_option
    22
    33from django.core.management.base import LabelCommand
    4 from django.db import connections, transaction, models, DEFAULT_DB_ALIAS
     4from django.core.cache.backends.db import BaseDatabaseCache
     5from django.db import connections, router, transaction, models, DEFAULT_DB_ALIAS
    56
    67class Command(LabelCommand):
    78    help = "Creates the table needed to use the SQL cache backend."
     
    1819    requires_model_validation = False
    1920
    2021    def handle_label(self, tablename, **options):
    21         alias = options.get('database', DEFAULT_DB_ALIAS)
    22         connection = connections[alias]
     22        db = options.get('database', DEFAULT_DB_ALIAS)
     23        cache = BaseDatabaseCache(tablename, {})
     24        if not router.allow_syncdb(db, cache.cache_model_class):
     25            return
     26        connection = connections[db]
    2327        fields = (
    2428            # "key" is a reserved word in MySQL, so use "cache_key" instead.
    2529            models.CharField(name='cache_key', max_length=255, unique=True, primary_key=True),
     
    5054        curs.execute("\n".join(full_statement))
    5155        for statement in index_output:
    5256            curs.execute(statement)
    53         transaction.commit_unless_managed(using=alias)
     57        transaction.commit_unless_managed(using=db)
  • django/contrib/gis/db/backends/spatialite/creation.py

     
    3333        for cache_alias in settings.CACHES:
    3434            cache = get_cache(cache_alias)
    3535            if isinstance(cache, BaseDatabaseCache):
    36                 from django.db import router
    37                 if router.allow_syncdb(self.connection.alias, cache.cache_model_class):
    38                     call_command('createcachetable', cache._table, database=self.connection.alias)
     36                call_command('createcachetable', cache._table, database=self.connection.alias)
    3937        # Get a cursor (even though we don't need one yet). This has
    4038        # the side effect of initializing the test database.
    4139        cursor = self.connection.cursor()
Back to Top