diff --git a/ippisite/ippidb/management/commands/import_v1_data.py b/ippisite/ippidb/management/commands/import_v1_data.py index ee2da5257259bc6ac60feef8177f05ad6a298ac2..8820aca4aba57dd59f10d82de0826fd08ab9c9b0 100644 --- a/ippisite/ippidb/management/commands/import_v1_data.py +++ b/ippisite/ippidb/management/commands/import_v1_data.py @@ -1,4 +1,4 @@ -from django.core.management import BaseCommand +from django.core.management import BaseCommand, CommandError import mysql.connector from ippidb.models import Bibliography, Protein, Taxonomy @@ -22,6 +22,14 @@ class Command(BaseCommand): default=False, help='Flush and migrate proteins', ) + parser.add_argument( + '--stoponfail', + action='store_true', + dest='stoponfail', + default=False, + help='Stop on fail', + ) + def handle(self, *args, **options): conn = mysql.connector.connect(host="localhost",user="root",password="ippidb", database="ippidb") @@ -57,7 +65,12 @@ class Command(BaseCommand): p.uniprot_id = row[1] p.save() except Exception as e: - self.stdout.write(self.style.ERROR('Failed inserting {} {}'.format(row[1], row[2]))) + if options['stoponfail']: + import traceback + self.stderr.write(traceback.format_exc()) + raise CommandError('Failed inserting {} {}'.format(row[1], row[2])) + else: + self.stdout.write(self.style.ERROR('Failed inserting {} {}'.format(row[1], row[2]))) else: self.stdout.write(self.style.SUCCESS('Successfully inserted {} {}'.format(row[1], row[2])))