问题:Heroku 和 Rails 不推荐使用 PGconn、PGresult 和 PGError 常量

我在数据库设置中重置了 Heroku 上的数据库并运行了heroku run rake db:migrate。尽管它为每个本地数据库创建了具有正确列的所有数据表,但它不会迁移任何现有的本地数据。 Heroku 数据库只是空的。过去我运行了上面的代码并且工作正常,但这次卡住了,如下所示:

mac-a:skiny ran$ heroku run bundle exec rake db:migrate
Running bundle exec rake db:migrate on ⬢ blooming-citadel-66205... up, run.3076 (Hobby)
The PGconn, PGresult, and PGError constants are deprecated, and will be
removed as of version 1.0.

You should use PG::Connection, PG::Result, and PG::Error instead, respectively.

Called from /app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
ActiveRecord::SchemaMigration Load (1.2ms)  SELECT "schema_migrations".* FROM "schema_migrations"

作为说明,我在运行heroku run rake db:reset时退出了 mac 终端,可能存在一些内部错误......

解答

尝试以下操作,编辑您的 Gemfile,如下所示

gem 'pg', '~> 0.20.0'

或者

gem 'pg', '~> 0.11'

然后捆绑安装并尝试,它在我手上工作。

注意: > 之前的波浪号,这不是破折号

在您的 Gemfile 的组生产中进行此更新后,请确保您运行bundle install --without production(以更新 Gemfile.lock 文件),执行 git add/commit 循环,然后重新部署到 Heroku。

希望能帮助到你

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐