这个问题让我无法继续,我不知道我是否有可能在Heroku上部署我的Rails应用程序。
当我尝试通过在我的 Gemfile 中gem 'pg'
bundle install
时,它给出了以下错误。
An error occurred while installing pg (0.18.2), and Bundler cannot continue.
Make sure that gem install pg -v '0.18.2' succeeds before bundling.
但是,当我尝试sudo gem install pg
时,它说Successfully installed pg-0.18.2
1 gem installed
但是当我尝试在本地运行该应用程序或在 Heroku 上部署时,它再次给我同样的错误。通过在开发模式下使用sqlite3
,一切都很好,但是在Heroku上会出现同样的问题,因为Heroku不支持sqlite3。
你在本地安装了PostgreSQL吗? 如果没有,这可能是原因(拥有gem 'pg'
不足以在本地安装它)。 您必须运行sudo apt-get install postgresql postgresql-contrib
才能安装。
不过,您不需要在本地安装它即可推送到 Heroku...只要你有gem 'pg'
. 为此,您可以在 Gemfile 中设置一个专门用于生产的不同组。 像这样:
group :development, :test do
gem 'sqlite3', '1.3.9'
end
group :production do
gem 'pg', '0.17.1'
gem 'rails_12factor', '0.0.2'
end
第一件事是您必须在 gem 文件中包含生产中的pg
gem 和开发和测试环境中的sqlite
group :development, :test do
gem 'sqlite3'
end
gem 'pg', group: :production
然后捆绑不包括生产环境的 Gem
bundle install --without production
然后你可以提交并推动英雄库。