[英]Why tracking number get from resource API is different from the tracking number recorded in database?
我在CKAN 2.7.3 API 文檔中使用了resource_show
從特定資源中獲取元數據。 在我的tracking_summary
表中,我有一些資源的跟蹤編號大於 0。但是,當我將resource_show
與{'include_tracking': True}
,它顯示recent
和total
都是 0。
我在tracking_summary
表中的資源記錄如下所示:
url | running_total | recent_views
-----------------------------------------------------------------------------------------------------------------+---------------+--------------
/dataset/d5cd38f4-03df-450e-9eb8-4967bc9741da/resource/844625fb-80a9-445c-85e7-5be8f10ec57b/download/test.csv | 1 | 1
我確認我已經運行了paster tracking update
和paster search-index rebuild
。 我不知道我現在錯過了什么。
我找出了原因。 如果我們查看我們存儲在tracking_summary
表中的url
,它不包含 http 架構和域: http://example.ckan.com
。 但是,如果我們從resource
表中查詢資源,則url
將包含完整的 http url。 此外,當您嘗試在應用程序中使用{'include_tracking': True}
調用resource_show
API 時, Tracking
模型中的get_for_resource(cls, url)
將引用完整url
而不是部分url
。 因此,如果我們存儲部分的, get_for_resource
將在data = obj.filter_by(url=url).order_by(text('tracking_date desc')).first()
行失敗。 因此,當我們在tracking_summary
保存資源 url 時,我們應該存儲完整的,例如: http://example.ckan.com/dataset/<package_id>/resource/<resource_id>/<file_name>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.