Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 赫罗库+;单元PG::错误:错误:函数PG_stat_statements_reset()不存在_Ruby On Rails 4_Postgresql 9.3_Heroku Postgres_Apartment Gem_Pg Stat Statements - Fatal编程技术网

Ruby on rails 4 赫罗库+;单元PG::错误:错误:函数PG_stat_statements_reset()不存在

Ruby on rails 4 赫罗库+;单元PG::错误:错误:函数PG_stat_statements_reset()不存在,ruby-on-rails-4,postgresql-9.3,heroku-postgres,apartment-gem,pg-stat-statements,Ruby On Rails 4,Postgresql 9.3,Heroku Postgres,Apartment Gem,Pg Stat Statements,我使用Rails 4中的公寓gem来支持Heroku上Postgres 9.3.3中的多租户 公寓gem创建新租户时出错 深入调查表明创建了一个模式,但其中没有表 Heroku日志显示错误: PG::Error: ERROR: function pg_stat_statements_reset() does not exist 创建新模式时,Postgres正试图通过执行函数pg_stat_statements_reset() 默认情况下,此功能只能由超级用户执行 Heroku不会给你超级用

我使用Rails 4中的公寓gem来支持Heroku上Postgres 9.3.3中的多租户

公寓gem创建新租户时出错

深入调查表明创建了一个模式,但其中没有表

Heroku日志显示错误:

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

创建新模式时,Postgres正试图通过执行函数pg_stat_statements_reset()

默认情况下,此功能只能由超级用户执行

Heroku不会给你超级用户权限。 因此,您需要禁用扩展pg_stat_语句

解决方案1-直接在DB中进行快速热修复

  • 访问Heroku应用程序的Rails控制台:

    heroku run rails c

  • 在公共架构中执行SQL语句:

    ActiveRecord::Base.connection.execute(“DROP EXTENSION pg_stat_statements;”)

  • 解决方案2-通过迁移

  • 检查文件db/schema.rb。很可能它包含一行

    启用扩展“pg\U stat\U语句”

  • 创建迁移文件

    rails g迁移DropExtensionPGStatStatStatements

  • 定义self.up方法

    自我介绍 禁用扩展“pg\U stat\U语句” 结束

  • 应用迁移

    rake数据库:迁移

  • 现在,文件db/schema.rb不应该包含该行

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

    rake部署:生产:迁移


  • 关于耙子任务,看

    天哪,你救了我的命!非常感谢。