我已经创建了一些TracReports但是尝试用SQL做它们,我没有得到我期望的结果。这是我的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函数。
答案 0 :(得分:4)
将您的日志记录级别设置为DEBUG
,并在[trac] debug_sql = true
中设置配置选项trac.ini
。这将记录在数据库上创建的所有SQL语句,包括与查询对应的SQL语句。最困难的部分是在日志中找到正确的陈述。
哦,并在完成后再次禁用该选项,因为所有日志记录都会大大降低Trac的速度。
答案 1 :(得分:1)
Trac源代码在内部将查询转换为SQL,因此您应该能够编辑源以在将查询字符串提交到数据库之前将查询字符串打印到日志文件中(我没有在我面前的源代码)所以我无法告诉你一个确切的代码位置。当您直接输入SQL时,可能无法得到完全相同的结果,我不记得Trac是否对TracQuery上的SQL查询结果进行了任何额外的后处理。
将Trac日志记录设置调整为“DEBUG”并查看执行这两个查询时日志中是否有任何有用的输出也可能有所帮助。