ruby-on-rails-3 - PgHero Rails - 列 "pid"不存在

标签 ruby-on-rails-3 postgresql postgresql-9.1

我正在尝试设置 PgHero在应用程序中。我不断收到以下错误

Started GET "/pghero" for 127.0.0.1 at 2014-09-09 12:35:41 +0530 Processing by PgHero::HomeController#index as HTML Geokit is using the domain: localhost (3.9ms) SELECT COUNT(*) AS count FROM pg_extension WHERE extname = 'pg_stat_statements' CACHE (0.0ms) SELECT COUNT(*) AS count FROM pg_extension WHERE extname = 'pg_stat_statements' (1.5ms) SELECT pid, state, application_name AS source, age(now(), xact_start) AS duration, waiting, query, xact_start AS started_at FROM pg_stat_activity WHERE query <> '<insufficient privilege>' AND state <> 'idle' AND pid <> pg_backend_pid() AND now() - query_start > interval '1 minutes' ORDER BY query_start DESC PG::Error: ERROR: column "pid" does not exist LINE 1: SELECT pid, state, application_name AS source, age(now(), xa... ^ : SELECT pid, state, application_name AS source, age(now(), xact_start) AS duration, waiting, query, xact_start AS started_at FROM pg_stat_activity WHERE query <> '<insufficient privilege>' AND state <> 'idle' AND pid <> pg_backend_pid() AND now() - query_start > interval '1 minutes' ORDER BY query_start DESC

我遵循了 documentation 中提到的所有步骤和故障排除

postgresql.conf

shared_preload_libraries = 'pg_stat_statements' custom_variable_classes = 'pg_stat_statements' pg_stat_statements.track = all

重启 PG 服务器后,我使用 CREATE extension pg_stat_statements; 创建了扩展然后使用 SELECT pg_stat_statements_reset(); 重置统计信息

在我重新启动 Rails 服务器并点击 /pghero 之后给出同样的错误。

看起来像是 pgsql 问题。我不擅长 pg 管理。任何人都可以告诉我修复它的方法吗?

最佳答案

使用 PostgreSQL 9.2,或者查看是否有支持 9.1 的旧 pghero 版本。似乎没有,因为:

Supports PostgreSQL 9.2+

就在 README 的顶部附近。


错误解释:

pg_stat_activity 中的 pid 列在 PostgreSQL 9.1 及更早版本中被命名为 procpid。该工具似乎不检查 PostgreSQL 版本并使用适当的名称,它只是假设它正在与 9.2 或更新版本通信。

因此,您可以向 PgHero 添加对 SELECT current_setting('server_version_num') 的值的检查,使其切换到旧列名称,并在需要时提交拉取请求。

就我个人而言,我会升级到 9.3。

关于ruby-on-rails-3 - PgHero Rails - 列 "pid"不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25738715/

相关文章:

ruby-on-rails-3 - 自定义关联方法 - 可以这样做吗

ruby-on-rails - 如何使用 Rails + Mongo 解决 URL 性能缓慢的问题

postgresql - PL/pgSQL 的 CRC32 函数

database - 未找到 ERROR_PROCEDURE()、ERROR_LINE()、ERROR_MESSAGE() 的等效函数

ruby - 为什么我不能运行 postgresql 服务器?

postgresql - 如何在将新记录插入 postgresql 表时调用序列?

sql - Postgres 9.x 加入重叠的日期和时间范围

ruby-on-rails-3 - Ruby on Rails 教程第 9 步中未定义的方法 `post_comment_path'

ruby - 尝试将文件上传到 Rails 时出现 EOFError(错误的内容正文)

sql - 涉及三个不同表的 SELECT 语句