2010-12-15 31 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

相關問題