id summary reporter owner description type status priority milestone component version severity resolution keywords cc branch changelog apichanges internalchanges 11419 More user-friendly error message from trac-admin console commands when IntegrityError in database Ryan J Ollos Ryan J Ollos "Console admin milestone add operation could report a nicer error when milestone already exists. For example, {{{#!sh $ trac-admin tracdev milestone add milestone1 IntegrityError: column name is not unique 16:29:47 Trac[console] ERROR: Exception in trac-admin command: Traceback (most recent call last): File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/admin/console.py"", line 110, in onecmd rv = cmd.Cmd.onecmd(self, line) or 0 File ""/usr/lib/python2.7/cmd.py"", line 220, in onecmd return self.default(line) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/admin/console.py"", line 286, in default return self.cmd_mgr.execute_command(*args) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/admin/api.py"", line 127, in execute_command return f(*fargs) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/ticket/admin.py"", line 411, in _do_add milestone.insert() File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/ticket/model.py"", line 1042, in insert to_utimestamp(self.completed), self.description)) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/db/util.py"", line 121, in execute cursor.execute(query, params) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/db/util.py"", line 65, in execute return self.cursor.execute(sql_escape_percent(sql), args) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/db/sqlite_backend.py"", line 78, in execute result = PyFormatCursor.execute(self, *args) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/db/sqlite_backend.py"", line 56, in execute args or []) File ""/home/user/Workspace/t2311/teo-rjollos.git/trac/db/sqlite_backend.py"", line 48, in _rollback_on_error return function(self, *args, **kwargs) IntegrityError: column name is not unique }}} Instead, we'll aim for something like: {{{#!sh $ trac-admin tracdev milestone add milestone1 TracError: milestone ""milestone1"" already exists }}} The logic in [browser:/tags/trac-1.1.6/trac/ticket/admin.py@:53,56#L30] may need to be modified." enhancement assigned normal 1.2 admin/console normal Cached fields returned by `TicketSystem.get_ticket_fields` were not updated when milestone due or completed dates were changed.