我正在创建一个可以访问Redmine项目数据的仪表板。此仪表板将整合Redmine数据库中所有项目的项目数据(交付日期,经理,开始日期,总问题,未解决问题,已关闭问题,错误计数等)。
关于如何做到这一点的任何想法?实现这一目标的SQL查询将是一个良好的开端。我在本地系统上安装了Redmine,可以访问Redmine数据库。
我计划创建一个基于HTML5 .Net的Web应用程序。一旦我找出要使用的查询,我就会编写一个IIS(或REST)服务来从Redmine生产数据库中获取所需的数据。
非常感谢任何帮助/指示。
此致 Pranjal
答案 0 :(得分:3)
您基本上有三种选择:
您可以做的最好的事情是使用redmine REST API。使用它,您可以直接从redmine获取数据,而无需任何SQL查询或操作服务器。它甚至应该在更新redmine服务器时起作用。
接下来最好的事情可能是制定一个redmine plug-in。您的插件可以访问redmine类(Project
,User
等)。例如,您可以执行Projects.all.map {|p| [p.id, p.identifier]}
之类的操作来获取数组中所有项目的ID和标识符。这种方法比使用REST API更强大,但您必须修改redmine服务器(安装和维护插件)。当redmine更改内部结构时,插件可能比REST API更脆弱。
我不建议开发自定义SQL解决方案,但它是一个选项。这样的解决方案更难开发,更脆弱,更难设置,但可能提供更好的性能。
您可以在db/schema.rb
中看到redmine数据库结构。拥有正确的架构,您可以开发自定义SQL查询并将其返回到仪表板。
除了通常的安全性内容(你也应该考虑:)),请记住redmine有一个丰富的权限系统。考虑您(公开)可用的对象。这对最后两个选项最重要。使用插件方法时,您应该查看the User#allowed_to
method。
根据我对您的要求的一点信息,我觉得你应该选择REST API 。