Django

Code

Ticket #6719: syncdb_better_error_messages.diff

File syncdb_better_error_messages.diff, 1.5 kB (added by guettli, 10 months ago)

Uses option '--traceback' now.

  • django/core/management/commands/syncdb.py

    old new  
    2525 
    2626        verbosity = int(options.get('verbosity', 1)) 
    2727        interactive = options.get('interactive') 
     28        show_traceback = options.get('traceback', False) 
    2829 
    2930        self.style = no_style() 
    3031 
     
    110111                            for sql in custom_sql: 
    111112                                cursor.execute(sql) 
    112113                        except Exception, e: 
    113                             sys.stderr.write("Failed to install custom SQL for %s.%s model: %s" % \ 
     114                            sys.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" % \ 
    114115                                                (app_name, model._meta.object_name, e)) 
     116                            if show_traceback: 
     117                                import traceback 
     118                                traceback.print_exc() 
    115119                            transaction.rollback_unless_managed() 
    116120                        else: 
    117121                            transaction.commit_unless_managed() 
    118  
     122                    else: 
     123                        if verbosity >= 2: 
     124                            print "No custom SQL for %s.%s model" % (app_name, model._meta.object_name) 
    119125        # Install SQL indicies for all newly created models 
    120126        for app in models.get_apps(): 
    121127            app_name = app.__name__.split('.')[-2]