Loading django/core/management/commands/loaddata.py +2 −10 Original line number Diff line number Diff line Loading @@ -8,15 +8,10 @@ from django.conf import settings from django.core import serializers from django.core.management.base import BaseCommand from django.core.management.color import no_style from django.db import connections, transaction, DEFAULT_DB_ALIAS from django.db import connections, router, transaction, DEFAULT_DB_ALIAS from django.db.models import get_apps from django.utils.itercompat import product try: set except NameError: from sets import Set as set # Python 2.3 fallback try: import bz2 has_bz2 = True Loading @@ -31,13 +26,10 @@ class Command(BaseCommand): make_option('--database', action='store', dest='database', default=DEFAULT_DB_ALIAS, help='Nominates a specific database to load ' 'fixtures into. Defaults to the "default" database.'), make_option('-e', '--exclude', dest='exclude',action='append', default=[], help='App to exclude (use multiple --exclude to exclude multiple apps).'), ) def handle(self, *fixture_labels, **options): using = options.get('database', DEFAULT_DB_ALIAS) excluded_apps = options.get('exclude', []) connection = connections[using] self.style = no_style() Loading Loading @@ -171,7 +163,7 @@ class Command(BaseCommand): try: objects = serializers.deserialize(format, fixture, using=using) for obj in objects: if obj.object._meta.app_label not in excluded_apps: if router.allow_syncdb(using, obj.object.__class__): objects_in_fixture += 1 models.add(obj.object.__class__) obj.save(using=using) Loading django/core/management/commands/syncdb.py +14 −16 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ from django.conf import settings from django.core.management.base import NoArgsCommand from django.core.management.color import no_style from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal from django.db import connections, transaction, models, DEFAULT_DB_ALIAS from django.db import connections, router, transaction, models, DEFAULT_DB_ALIAS from django.utils.importlib import import_module Loading @@ -16,8 +16,6 @@ class Command(NoArgsCommand): make_option('--database', action='store', dest='database', default=DEFAULT_DB_ALIAS, help='Nominates a database to synchronize. ' 'Defaults to the "default" database.'), make_option('-e', '--exclude', dest='exclude',action='append', default=[], help='App to exclude (use multiple --exclude to exclude multiple apps).'), ) help = "Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created." Loading @@ -26,7 +24,6 @@ class Command(NoArgsCommand): verbosity = int(options.get('verbosity', 1)) interactive = options.get('interactive') show_traceback = options.get('traceback', False) exclude = options.get('exclude', []) self.style = no_style() Loading Loading @@ -59,13 +56,16 @@ class Command(NoArgsCommand): created_models = set() pending_references = {} excluded_apps = set(models.get_app(app_label) for app_label in exclude) included_apps = set(app for app in models.get_apps() if app not in excluded_apps) # Build the manifest of apps and models that are to be synchronized manifest = dict( (app.__name__.split('.')[-2], [m for m in models.get_models(app, include_auto_created=True) if router.allow_syncdb(db, m)]) for app in models.get_apps() ) # Create the tables for each model for app in included_apps: app_name = app.__name__.split('.')[-2] model_list = models.get_models(app, include_auto_created=True) for app_name, model_list in manifest.items(): for model in model_list: # Create the model's database table, if it doesn't already exist. if verbosity >= 2: Loading Loading @@ -101,9 +101,8 @@ class Command(NoArgsCommand): # Install custom SQL for the app (but only if this # is a model we've just created) for app in included_apps: app_name = app.__name__.split('.')[-2] for model in models.get_models(app): for app_name, model_list in manifest.items(): for model in model_list: if model in created_models: custom_sql = custom_sql_for_model(model, self.style, connection) if custom_sql: Loading @@ -126,9 +125,8 @@ class Command(NoArgsCommand): print "No custom SQL for %s.%s model" % (app_name, model._meta.object_name) # Install SQL indicies for all newly created models for app in included_apps: app_name = app.__name__.split('.')[-2] for model in models.get_models(app): for app_name, model_list in manifest.items(): for model in model_list: if model in created_models: index_sql = connection.creation.sql_indexes_for_model(model, self.style) if index_sql: Loading @@ -145,4 +143,4 @@ class Command(NoArgsCommand): transaction.commit_unless_managed(using=db) from django.core.management import call_command call_command('loaddata', 'initial_data', verbosity=verbosity, exclude=exclude, database=db) call_command('loaddata', 'initial_data', verbosity=verbosity, database=db) django/db/utils.py +7 −0 Original line number Diff line number Diff line Loading @@ -121,3 +121,10 @@ class ConnectionRouter(object): if allow is not None: return allow return obj1._state.db == obj2._state.db def allow_syncdb(self, db, model): for router in self.routers: allow = router.allow_syncdb(db, model) if allow is not None: return allow return True django/test/simple.py +0 −6 Original line number Diff line number Diff line Loading @@ -284,17 +284,11 @@ class DjangoTestSuiteRunner(object): Returns the number of tests that failed. """ self.setup_test_environment() suite = self.build_suite(test_labels, extra_tests) old_config = self.setup_databases() result = self.run_suite(suite) self.teardown_databases(old_config) self.teardown_test_environment() return self.suite_result(result) def run_tests(test_labels, verbosity=1, interactive=True, failfast=False, extra_tests=None): Loading docs/ref/django-admin.txt +0 −19 Original line number Diff line number Diff line Loading @@ -423,25 +423,6 @@ define the fixture ``mydata.master.json`` or have specified that you want to load data onto the ``master`` database. Excluding applications from loading ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. versionadded:: 1.2 The :djadminopt:`--exclude` option may be provided to prevent specific applications from being loaded. For example, if you wanted to exclude models from ``django.contrib.auth`` from being loaded into your database, you would call:: django-admin.py loaddata mydata.json --exclude auth This will look for for a JSON fixture called ``mydata`` in all the usual locations - including the ``fixtures`` directory of the ``django.contrib.auth`` application. However, any fixture object that identifies itself as belonging to the ``auth`` application (e.g., instance of ``auth.User``) would be ignored by loaddata. makemessages ------------ Loading Loading
django/core/management/commands/loaddata.py +2 −10 Original line number Diff line number Diff line Loading @@ -8,15 +8,10 @@ from django.conf import settings from django.core import serializers from django.core.management.base import BaseCommand from django.core.management.color import no_style from django.db import connections, transaction, DEFAULT_DB_ALIAS from django.db import connections, router, transaction, DEFAULT_DB_ALIAS from django.db.models import get_apps from django.utils.itercompat import product try: set except NameError: from sets import Set as set # Python 2.3 fallback try: import bz2 has_bz2 = True Loading @@ -31,13 +26,10 @@ class Command(BaseCommand): make_option('--database', action='store', dest='database', default=DEFAULT_DB_ALIAS, help='Nominates a specific database to load ' 'fixtures into. Defaults to the "default" database.'), make_option('-e', '--exclude', dest='exclude',action='append', default=[], help='App to exclude (use multiple --exclude to exclude multiple apps).'), ) def handle(self, *fixture_labels, **options): using = options.get('database', DEFAULT_DB_ALIAS) excluded_apps = options.get('exclude', []) connection = connections[using] self.style = no_style() Loading Loading @@ -171,7 +163,7 @@ class Command(BaseCommand): try: objects = serializers.deserialize(format, fixture, using=using) for obj in objects: if obj.object._meta.app_label not in excluded_apps: if router.allow_syncdb(using, obj.object.__class__): objects_in_fixture += 1 models.add(obj.object.__class__) obj.save(using=using) Loading
django/core/management/commands/syncdb.py +14 −16 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ from django.conf import settings from django.core.management.base import NoArgsCommand from django.core.management.color import no_style from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal from django.db import connections, transaction, models, DEFAULT_DB_ALIAS from django.db import connections, router, transaction, models, DEFAULT_DB_ALIAS from django.utils.importlib import import_module Loading @@ -16,8 +16,6 @@ class Command(NoArgsCommand): make_option('--database', action='store', dest='database', default=DEFAULT_DB_ALIAS, help='Nominates a database to synchronize. ' 'Defaults to the "default" database.'), make_option('-e', '--exclude', dest='exclude',action='append', default=[], help='App to exclude (use multiple --exclude to exclude multiple apps).'), ) help = "Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created." Loading @@ -26,7 +24,6 @@ class Command(NoArgsCommand): verbosity = int(options.get('verbosity', 1)) interactive = options.get('interactive') show_traceback = options.get('traceback', False) exclude = options.get('exclude', []) self.style = no_style() Loading Loading @@ -59,13 +56,16 @@ class Command(NoArgsCommand): created_models = set() pending_references = {} excluded_apps = set(models.get_app(app_label) for app_label in exclude) included_apps = set(app for app in models.get_apps() if app not in excluded_apps) # Build the manifest of apps and models that are to be synchronized manifest = dict( (app.__name__.split('.')[-2], [m for m in models.get_models(app, include_auto_created=True) if router.allow_syncdb(db, m)]) for app in models.get_apps() ) # Create the tables for each model for app in included_apps: app_name = app.__name__.split('.')[-2] model_list = models.get_models(app, include_auto_created=True) for app_name, model_list in manifest.items(): for model in model_list: # Create the model's database table, if it doesn't already exist. if verbosity >= 2: Loading Loading @@ -101,9 +101,8 @@ class Command(NoArgsCommand): # Install custom SQL for the app (but only if this # is a model we've just created) for app in included_apps: app_name = app.__name__.split('.')[-2] for model in models.get_models(app): for app_name, model_list in manifest.items(): for model in model_list: if model in created_models: custom_sql = custom_sql_for_model(model, self.style, connection) if custom_sql: Loading @@ -126,9 +125,8 @@ class Command(NoArgsCommand): print "No custom SQL for %s.%s model" % (app_name, model._meta.object_name) # Install SQL indicies for all newly created models for app in included_apps: app_name = app.__name__.split('.')[-2] for model in models.get_models(app): for app_name, model_list in manifest.items(): for model in model_list: if model in created_models: index_sql = connection.creation.sql_indexes_for_model(model, self.style) if index_sql: Loading @@ -145,4 +143,4 @@ class Command(NoArgsCommand): transaction.commit_unless_managed(using=db) from django.core.management import call_command call_command('loaddata', 'initial_data', verbosity=verbosity, exclude=exclude, database=db) call_command('loaddata', 'initial_data', verbosity=verbosity, database=db)
django/db/utils.py +7 −0 Original line number Diff line number Diff line Loading @@ -121,3 +121,10 @@ class ConnectionRouter(object): if allow is not None: return allow return obj1._state.db == obj2._state.db def allow_syncdb(self, db, model): for router in self.routers: allow = router.allow_syncdb(db, model) if allow is not None: return allow return True
django/test/simple.py +0 −6 Original line number Diff line number Diff line Loading @@ -284,17 +284,11 @@ class DjangoTestSuiteRunner(object): Returns the number of tests that failed. """ self.setup_test_environment() suite = self.build_suite(test_labels, extra_tests) old_config = self.setup_databases() result = self.run_suite(suite) self.teardown_databases(old_config) self.teardown_test_environment() return self.suite_result(result) def run_tests(test_labels, verbosity=1, interactive=True, failfast=False, extra_tests=None): Loading
docs/ref/django-admin.txt +0 −19 Original line number Diff line number Diff line Loading @@ -423,25 +423,6 @@ define the fixture ``mydata.master.json`` or have specified that you want to load data onto the ``master`` database. Excluding applications from loading ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. versionadded:: 1.2 The :djadminopt:`--exclude` option may be provided to prevent specific applications from being loaded. For example, if you wanted to exclude models from ``django.contrib.auth`` from being loaded into your database, you would call:: django-admin.py loaddata mydata.json --exclude auth This will look for for a JSON fixture called ``mydata`` in all the usual locations - including the ``fixtures`` directory of the ``django.contrib.auth`` application. However, any fixture object that identifies itself as belonging to the ``auth`` application (e.g., instance of ``auth.User``) would be ignored by loaddata. makemessages ------------ Loading