pg gem upgraded 0.19 to 0.20 - LoadError: incompatible library version

pg gem upgraded 0.19 to 0.20 - LoadError: incompatible library version

我正在使用 Capistrano 3 管理我对 AWS 的部署,在 OS X 上开发并在 Ubuntu.

上提供服务

每当我升级我的 Gemfile 和 bundle 时,我都会 运行 遇到以下问题:

  01 rake aborted!
  01 LoadError: incompatible library version - /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg_ext.so
  01 /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg.rb:4:in `require'
  01 /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg.rb:4:in `<top (required)>'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `each'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `block in require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler.rb:107:in `require'
  01 /var/www/<app_name>/releases/20170406223132/config/application.rb:7:in `<top (required)>'
  01 /var/www/<app_name>/releases/20170406223132/Rakefile:4:in `require'
  01 /var/www/<app_name>/releases/20170406223132/Rakefile:4:in `<top (required)>'
  01 /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
  01 (See full trace by running task with --trace)

我什至不知道从哪里开始解决这个问题。这是RVM的问题吗?这是捆绑器的问题吗?我的应用程序?

我尝试了 this RVM issue 上的建议,但无济于事。有什么建议吗?

此外,如果有一种方法可以使用 Capistrano 来管理它,那会更好,因为 Capistrano 的目的是远程系统管理。但是如果我登录服务器,我会-我只是不明白为什么我必须这样做。

更新 - 我已经完全破坏了 RVM gemset 并让它尝试完全 "reinstall" 所有 gem - 仍然产生相同的结果错误如下。

这种错误通常意味着目标机器上安装的 PostgreSQL 版本有问题 - 版本太旧或不兼容。