Helper functions to abstract the Trac SQL API


While there is considerable contention on the subject, I am one of those people that doesn't like to see SQL statements in Python code (or C code, etc). I especially don't like it when the same basic statements are repeated all over the place. So TracSqlHelperScript is my attempt to encapsulate all of this logic in one place. These are functions I've already co-written for the TracHoursPlugin and then rewritten (some of them) for the GeoTicketPlugin. Instead of rewriting them again for yet another plugin where I want this functionality, I'm making a library out of them which hopefully I will backport to those plugins.

I'd really like a better story for this in general, like having at least some of these convenient functions on the DB cursor. But quite frankly, I'm not an SQL expert, and IMHO it would be better for Trac to completely abstract its backend, so I'll leave whatever action for those that know better and stick with this library for my purposes.

Bugs/Feature Requests

Existing bugs and feature requests for TracSqlHelperScript are here.

If you have any issues, create a new ticket.


3 / 3


1 / 1


Download the zipped source from here.


You can check out TracSqlHelperScript from here using Subversion, or browse the source with Trac.


See the GeoTicketPlugin and the TracHoursPlugin for how these functions are used. Essentially, they are to help build new plugins with when you want to have a slightly abstracted database layer. I'd love help with this, if anyone would like to contribute.

Recent Changes

14299 by rjollos on 2014-12-05 11:07:30
0.3.0: New branch compatible with Trac 1.1.2 and later. Fixes #12090.
12983 by rjollos on 2013-04-19 18:04:44
Refs #7262: Bump version of 0.12 branch, so that it differs from the 0.11 branch following [8159].
12982 by rjollos on 2013-04-19 18:04:32
Refs #8528: Changed license to BSD 3-Clause.


Author: k0s
Maintainer: none (needsadoption)

Last modified 7 months ago Last modified on Nov 9, 2015, 12:34:01 PM