Postmine上的Redmine 3.3.0,Global Statistics插件

时间:2016-10-03 13:02:35

标签: ruby postgresql redmine redmine-plugins

您好我已经为我的公司安装了Redmine 3.3.0,一切都很顺利,但Global Stats造成了一些问题。

这些是我到目前为止收集的信息:

插件无法与Postgresql一起使用,无论你使用的是什么Redmine版本如果你在任何项目中至少有一个问题。

在任何Redmine版本上,它与mySQL完全兼容。

我对Ruby和SQL知之甚少,所以这可能看起来像是一个功课问题,但请耐心等待。

当我想访问统计页面时,这是Redmine production.log错误(如果至少创建了一个问题,则再次出现)

ActiveRecord::RecordNotFound (Couldn't find Project with 'id'=):
  app/models/project.rb:310:in `find'
  plugins/redmine_stats/app/models/stat.rb:64:in `block in authors'
  plugins/redmine_stats/app/models/stat.rb:63:in `each'
  plugins/redmine_stats/app/models/stat.rb:63:in `authors'
  plugins/redmine_stats/app/controllers/stats_controller.rb:22:in `index'
  lib/redmine/sudo_mode.rb:63:in `sudo_mode'

问题是我认为插件如何处理postgresql查询(令人震惊,我知道。)下面这段代码来自stat.rb,其中Redmine日志给出了错误。

#get all authors of issues
def self.authors(project)

return project.authors unless project == nil

data = []

if project.nil?
    ActiveRecord::Base.connection.execute("SELECT count(project_id), project_id from issues group by project_id  order by count(project_id) DESC LIMIT 5").each do |row|
                data << Project.find(row[0])
        end
else

        ActiveRecord::Base.connection.execute("SELECT count(author_id), author_id from issues where project_id = '#{project.id}' group by author_id  order by count(author_id) DESC LIMIT 5").each do |row|
                data << User.find(row[0])
        end
    end

    data

end

最后,这是我在localhost上的Redmine环境(与公司服务器上的实时版本完全相同)

Environment:
Redmine version                3.3.0.stable
Ruby version                   2.3.0-p0 (2015-12-25) [x86_64-linux]
Rails version                  4.2.6
Environment                    production
Database adapter               PostgreSQL
SCM:
  Subversion                     1.8.8
  Git                            1.9.1
  Filesystem                     
Redmine plugins:
  redmine_stats                  0.0.3

我已经在Redmine官方论坛和插件作者的github页面上发布了这个问题,但至少1个月没有答案。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

将这些字符串添加到\ config \ additional_environment.rb:

config.logger = Logger.new('log/logfile.log', 2, 1000000)
config.log_level = :debug

并在加载页面时检查该日志中的查询。 将它们复制到支持postgres数据库的任何IDE,并测试是否返回任何结果

答案 1 :(得分:0)

尝试使用此fork来声明修复PostgreSQL支持:

https://github.com/myaspm/redmine_stats_2