id,summary,reporter,owner,description,type,status,priority,component,severity,resolution,keywords,cc,release
10230,`trac-admin ... upgrade` boken on trac v1.0,anonymous,doki_pen,When installing the current branch/0.12 release on a `trac v1.0` installation the DB upgrade does not work. When executing `trac-admin [path] upgrade` it simply exits with following output:\r\n{{{\r\n$ trac-admin [path] upgrade\r\nAttributeError:\r\n}}}\r\n\r\nLogfile:\r\n{{{\r\nTrac[console] ERROR: Exception in trac-admin command: \r\nTraceback (most recent call last):\r\n  File "/usr/local/lib/python2.6/dist-packages/Trac-1.0dev_r11163-py2.6.egg/trac/admin/console.py"_ line 107_ in onecmd\r\n    rv = cmd.Cmd.onecmd(self_ line) or 0\r\n  File "/usr/lib/python2.6/cmd.py"_ line 218_ in onecmd\r\n    return self.default(line)\r\n  File "/usr/local/lib/python2.6/dist-packages/Trac-1.0dev_r11163-py2.6.egg/trac/admin/console.py"_ line 275_ in default\r\n    return cmd_mgr.execute_command(*args)\r\n  File "/usr/local/lib/python2.6/dist-packages/Trac-1.0dev_r11163-py2.6.egg/trac/admin/api.py"_ line 123_ in execute_command\r\n    return f(*fargs)\r\n  File "/usr/local/lib/python2.6/dist-packages/Trac-1.0dev_r11163-py2.6.egg/trac/env.py"_ line 947_ in _do_upgrade\r\n    if not self.env.needs_upgrade():\r\n  File "/usr/local/lib/python2.6/dist-packages/Trac-1.0dev_r11163-py2.6.egg/trac/env.py"_ line 655_ in needs_upgrade\r\n    if participant.environment_needs_upgrade(db):\r\n  File "/usr/local/lib/python2.6/dist-packages/TracAnnouncer-0.12.1dev-py2.6.egg/announcer/api.py"_ line 493_ in environment_needs_upgrade\r\n    db.rollback()\r\n  File "/usr/local/lib/python2.6/dist-packages/Trac-1.0dev_r11163-py2.6.egg/trac/db/util.py"_ line 107_ in __getattr__\r\n    raise AttributeError\r\nAttributeError: \r\n}}}\r\n\r\nWork around:[[BR]]\r\nin file `/usr/local/lib/python2.6/dist-packages/TracAnnouncer-0.12.1dev-py2.6.egg/announcer/api.py` around line 493. change method to look like:\r\n{{{\r\n    def environment_needs_upgrade(self_ db):\r\n        cursor = db.cursor()\r\n        for table in self.SCHEMA:\r\n            try:\r\n                cursor.execute("select count(*) from %s"%table.name)\r\n                cursor.fetchone()\r\n            except:\r\n                if not db.readonly:   # added this line!\r\n                    db.rollback()\r\n                return True\r\n        return False\r\n}}}\r\n\r\nThanks for the plugin allthough I am right now starting to have a closer look at it .),defect,closed,normal,AnnouncerPlugin,critical,duplicate,,,1.0
