diff options
| author | Paul McMillan <Paul@McMillan.ws> | 2011-09-22 04:30:20 +0000 |
|---|---|---|
| committer | Paul McMillan <Paul@McMillan.ws> | 2011-09-22 04:30:20 +0000 |
| commit | 1d96d886e7f36fcee918b7fa5c32b677bed83b0d (patch) | |
| tree | 9a5ce5c9b6c2f05c3261f08451d439c292285b34 /django | |
| parent | 0781ed8ec8dab4f4658787c9dc1ca8499ccc1a18 (diff) | |
Fixed #16026 -- loaddata now identifies which object triggered an error.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16873 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/core/management/commands/loaddata.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py index 6b2b9e9b2e..7b0e30fbb4 100644 --- a/django/core/management/commands/loaddata.py +++ b/django/core/management/commands/loaddata.py @@ -12,7 +12,8 @@ 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, router, transaction, DEFAULT_DB_ALIAS +from django.db import (connections, router, transaction, DEFAULT_DB_ALIAS, + IntegrityError, DatabaseError) from django.db.models import get_apps from django.utils.itercompat import product @@ -177,7 +178,16 @@ class Command(BaseCommand): if router.allow_syncdb(using, obj.object.__class__): loaded_objects_in_fixture += 1 models.add(obj.object.__class__) - obj.save(using=using) + try: + obj.save(using=using) + except (DatabaseError, IntegrityError), e: + msg = "Could not load %(app_label)s.%(object_name)s(pk=%(pk)s): %(error_msg)s" % { + 'app_label': obj.object._meta.app_label, + 'object_name': obj.object._meta.object_name, + 'pk': obj.object.pk, + 'error_msg': e + } + raise e.__class__, e.__class__(msg), sys.exc_info()[2] # Since we disabled constraint checks, we must manually check for # any invalid keys that might have been added |
