2012-02-08 73 views
12

Tôi cố gắng để tạo ra một cơ sở báo cáo hàng tháng về yếu tố dưới đâyCấu trúc cơ sở dữ liệu sonar là gì?

  1. Lộc (dòng mã)
  2. Tuân Rule%
  3. Comment%
  4. dự liệu API Công%
  5. vi phạm an ninh
  6. Vi phạm (trừ Thông tin)
  7. Đường trùng lặp%

Tôi đã cố kiểm tra tàu quan hệ thực thể trong cơ sở dữ liệu sonar, tất cả các bảng đều độc lập. Tôi không chắc chắn từ bảng nào tôi sẽ nhận được giá trị để tạo báo cáo.

Đối với các gợi ý dưới đây truy vấn được đề cập

Gợi ý:

select proj.name as ClassName, -- Class Name for which violation has been found out 
     proj.long_name as LongName, -- Long Class Name i.e. with package for which violation has been found out 
     rf.failure_level as ErrorLevel, -- Error level of the violation 
     rf.message as Violation, -- Cause of Violation 
     rf.line as LineNumber, -- Line number of the class file 
     ru.name ViolationName, -- Violation Description 
     ru.plugin_name PluginType -- Plugin tool by which this error has been detected i.e. findbug, PMD, etc. 
     -- ,ru.description -- (if violation description is required we can add this column) from projects proj inner join snapshots snap on proj.id = snap.project_id inner join rule_failures rf on rf.snapshot_id = snap.id inner join rules ru on ru.id = rf.rule_id 
+0

là [plugin báo cáo] (http://docs.codehaus.org/display/SONAR/Sonar+PDF+Plugin) quá nhiều cho nhu cầu của bạn? – oers

+0

Ồ, vui lòng cung cấp cho mọi người tín dụng cho nỗ lực của họ để giúp bạn và [chấp nhận câu trả lời] (http://meta.stackexchange.com/a/5235/160062) về các câu hỏi trước của bạn. – oers

Trả lời

7

Bạn có thể lấy Thông tin trên Sử dụng Bảng bên dưới.

1) dự án, ảnh chụp nhanh, chỉ số và dự án. trong đó các bảng dự án chứa tên dự án. Và đối với mỗi dự án, một ảnh chụp nhanh được tạo trong một khoảng thời gian nhất định trong bảng chụp nhanh. sau đó từ bảng snapshot lấy id chụp nhanh và tìm kiếm nó trong bảng projects_measure. và tìm kiếm giá trị của thuộc tính descibed bằng id chỉ số.

select distinct proj.name NAME_OF_PROJ, metric.description Description, 
       projdesc.value, snap.created_at CREATED_DATE 
    from projects proj 
    inner join snapshots snap on snap.project_id=proj.id 
    inner join (select max(snap2.created_at) as date_of_creation,id from snapshots snap2 
       where Date(snap2.created_at) in ('2011-12-20','2012-02-21') 
       and snap2.project_id in (5507,35252,9807,38954,23018,32390) 
       GROUP BY DAY(snap2.created_at),snap2.project_id) as Lookup on Lookup.id=snap.id 

    inner join project_measures projdesc on projdesc.snapshot_id=snap.id 
    inner join metrics metric on projdesc.metric_id =metric.id 
    where metric.id in(1,2...) 
+0

Có nó hoạt động tốt – Amrin

11

tôi sẽ đề nghị sử dụng Sonar REST API để lấy thống kê.

Giản đồ cơ sở dữ liệu được cố ý không có giấy tờ của nhóm phát triển. Điều này cho phép họ thực hiện các thay đổi không phá vỡ các ứng dụng báo cáo phụ thuộc. (Rõ ràng điều này không ngăn người chạy các truy vấn SQL)


Ví dụ

Sử dụng CXF project in nemo làm ví dụ.

Các "nguồn" REST API trả về giá trị mới nhất của các số liệu yêu cầu

http://nemo.sonarsource.org/api/resources?resource=org.apache.cxf:cxf&verbose=true&metrics=ncloc,violations_density,comment_lines_density,public_documented_api_density,duplicated_lines_density,blocker_violations,critical_violations,major_violations,minor_violations

Và "timemachine" REST API của bạn trả về một bãi chứa CSV liệu của dữ liệu:

http://nemo.sonarsource.org/api/timemachine?resource=org.apache.cxf:cxf&format=csv&metrics=ncloc,violations_density,comment_lines_density,public_documented_api_density,duplicated_lines_density,blocker_violations,critical_violations,major_violations,minor_violations

(Trình duyệt của tôi sẽ khởi chạy bảng tính để đọc CSV dat một cách thuận tiện a)

+0

Đánh dấu là chắc chắn đúng, bạn không nên truy vấn cơ sở dữ liệu trực tiếp mà là sử dụng API dịch vụ web mà chúng tôi cung cấp.Nếu API không đáp ứng đầy đủ nhu cầu của bạn, vui lòng gửi thư trên danh sách gửi thư của người dùng và chúng tôi sẽ xem cách cải thiện nó. –

Các vấn đề liên quan