部署到数字海洋Droplet时的Postgres错误

时间:2015-03-31 22:46:28

标签: ruby-on-rails postgresql digital-ocean capistrano3

尝试使用Capistrano的cap production deploy将我的应用部署到Digital Ocean Droplet时,我一直收到错误消息。我得到的错误信息是:

rake aborted!
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded.
Add `gem 'pg'` to your Gemfile

但我的Gemfile在pg中包含production

...
group :production do 
  gem 'rails_12factor'
  gem 'pg'  
end
...

导致这种情况的原因是什么?

新发展:

我尝试将数据库适配器重置回sqlite3,只是为了查看部署是否会通过,并得到同样的错误:

Gem::LoadError: Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile

2 个答案:

答案 0 :(得分:0)

结果是Win用户的已知错误。在Gemfile.lock中,更改

sqlite3 (1.3.10-x86-mingw32)

sqlite3 (1.3.10-x64-mingw32)

我是直接在我的仓库中完成的,因为每次我在本地进行此更改并运行bundle install时,x64标志都会被切换回来。

答案 1 :(得分:0)

你的Gemfile中还应该有其他的东西 - 我建议你从你的Gemfile中删除这一行:

gem 'rails_12factor'

rails_12factor是一个特定于Heroku的日志记录宝石,它会对您的Digital Ocean Rails服务器造成严重破坏。我可以证明。