2010-12-15 29 views
3

我创建了一些TracReports,但试图用SQL来做,我没有得到我期待的结果。这是我的SQL查询:是否有可能将TracQuery转换为Trac SQL语句,反之亦然?

SELECT  p.value AS __color__, 
      reporter AS __group__, 
      id AS ticket, summary, resolution , component, 
      t.type AS type, priority, severity, time AS created, 
      changetime AS modified, 
      changetime AS __changetime, description AS _description, 
      reporter AS _reporter 
FROM  ticket t 
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' 
WHERE  t.status = 'closed' 
ORDER BY changetime DESC, CAST(p.value AS integer), milestone, t.type, time 

使用此查询,记者组完全不工作。每个记者有几行。所以我试图使用“自定义查询”功能获得结果。那我的生产具有以下TracQuery预期的结果:

query:?status=closed 
&group=reporter 
&col=id 
&col=summary 
&col=resolution 
&col=component 
&col=type 
&col=priority 
&col=severity 
&col=time 
&col=changetime 
&order=changetime 
&desc=1 

我的问题是:我可以转换TracQuery到SQL语句或我可以看到在后台完成的SQL语句?我在问,因为我希望能够投出一些列或使用其他SQL函数。

回答

4

将日志记录级别设置为DEBUG,并在trac.ini中设置配置选项[trac] debug_sql = true。这将记录数据库上的所有SQL语句,包括与您的查询相对应的SQL语句。最难的部分是在日志中找到正确的说法。

哦,并在完成后再次禁用该选项,因为所有的日志记录都会显着降低Trac的速度。

1

Trac源代码在内部将查询转换为SQL,所以您应该能够编辑源以在将查询字符串提交给数据库之前将查询字符串打印到日志文件中(前面没有源代码我所以我不能告诉你一个准确的代码位置)。当你直接输入SQL时,你可能得不到完全相同的结果,我不记得Trac是否对TracQuery的SQL查询结果做了任何额外的后处理。

它也可能有助于将Trac日志记录设置调整为'DEBUG',并查看执行这两​​个查询时日志中是否有任何有用的输出。

+0

感谢您的提示。不幸的是,我不是一个Python开发人员,所以我不想自己改变代码。但我会尝试调试模式,并报告是否得到我的结果。 – 2ndkauboy 2011-01-12 16:58:07

相关问题