Edgewall Software

Ticket #7082: trac-env-auto-upgrade.diff

File trac-env-auto-upgrade.diff, 1.3 KB (added by Dave Gynn <dgynn@…>, 9 months ago)
  • trac/trac/env.py

     
    566566        except Exception, e: # e.g. no database connection 
    567567            env.log.exception(e) 
    568568        if needs_upgrade: 
    569             raise TracError(_('The Trac Environment needs to be upgraded.\n\n' 
    570                               'Run "trac-admin %(path)s upgrade"', 
    571                               path=env_path)) 
     569            if env.config.getbool('trac','auto_upgrade',False): 
     570                try: 
     571                    env.log.info('Attempting auto-upgrade for %s' % env_path) 
     572                    env.upgrade() 
     573                    needs_upgrade = env.needs_upgrade() 
     574                    env.log.info('Successful auto-upgrade for %s' % env_path) 
     575                except Exception, e: # e.g. no database connection 
     576                    env.log.error('Failed auto-upgrade for %s: %s' %  
     577                                                            (env_path,e)) 
     578            if needs_upgrade: 
     579                raise TracError(_('The Trac Environment needs to be upgraded.' 
     580                                  '\n\nRun "trac-admin %(path)s upgrade"', 
     581                                  path=env_path)) 
    572582 
    573583    return env