在Heroku和Rails上不推荐使用PGconn,PGresult和PGError常量

时间:2018-03-07 10:28:45

标签: sql ruby-on-rails postgresql heroku

我在数据库设置中重置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终端,可能还有一些内部错误......

2 个答案:

答案 0 :(得分:7)

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

gem 'pg', '~> 0.20.0'

或者

gem 'pg', '~> 0.11'

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

注意: >之前的波浪符号,这不是短划线

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

希望有所帮助

答案 1 :(得分:0)

迁移不应该创建数据。它们定义表,索引,约束等。

迁移后,您应该使用db:seed创建数据(除了添加其他答案中提到的pg版本。)