加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-4 – Heroku Apartment PG ::错误:错误:函数pg_

发布时间:2020-12-16 22:12:09 所属栏目:百科 来源:网络整理
导读:我在Rails 4中使用Apartment gem来支持Heroku上的Postgres 9.3.3中的多租户. Apartment gem创建新租户时发生错误. 深入调查显示已创建架构,但内部没有表格. Heroku日志显示错误: PG::Error: ERROR: function pg_stat_statements_reset() does not exist 解
我在Rails 4中使用Apartment gem来支持Heroku上的Postgres 9.3.3中的多租户.

Apartment gem创建新租户时发生错误.

深入调查显示已创建架构,但内部没有表格.

Heroku日志显示错误:

PG::Error: ERROR:  function pg_stat_statements_reset() does not exist

解决方法

创建新模式时,Postgres尝试通过执行函数pg_stat_statements_reset()来重置统计信息

默认情况下,此功能只能由超级用户(from original doc)执行.

Heroku不会为您提供超级用户权限.
所以你需要禁用扩展名pg_stat_statements.

解决方案1 ?? – 直接在DB中快速修复

在schema public中执行SQL语句

DROP EXTENSION pg_stat_statements;

解决方案2 – 通过迁移

1)检查文件db / schema.rb.最有可能它包含一条线

enable_extension "pg_stat_statements"

2)创建迁移文件

rails g migration DropExtensionPgStatStatements

3)定义self.up方法

def self.up
  disable_extension "pg_stat_statements"
end

4)应用迁移

rake db:migrate

5)现在文件db / schema.rb不应包含该行

6)提交更改(架构和迁移文件)并部署到Heroku

rake deploy:production:migrations

关于rake任务,请参见deploy.rake

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读