From 4a64906acf74986c1a0f738aaccdcb517f9b7c04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr> Date: Thu, 23 Mar 2017 21:42:30 +0100 Subject: [PATCH] add stoponfail option for protein import --- .../management/commands/import_v1_data.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/ippisite/ippidb/management/commands/import_v1_data.py b/ippisite/ippidb/management/commands/import_v1_data.py index ee2da525..8820aca4 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]))) -- GitLab