[英]Heroku: push rejected - failed to install gems via bundler
我试图以与我一直相同的方式将应用程序推送到Heroku。 我正在使用Ruby 1.9.2和Rails 3.2.1。 但是,现在我收到此错误消息。 我做了它的建议
make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.
注意,即使我在我的gemfile中也这样做了
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
但是在终端上做gem install sqlite3 -v '1.3.5'
,但推送仍然被拒绝。 我不知道如何检查它在tmp目录中引用的Gem文件,但即使我这样做,我也不理解它们
有什么建议么?
Gem files will remain installed in /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection.
Results logged to /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out
An error occurred while installing sqlite3 (1.3.5), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.
!
! Failed to install gems via Bundler.
!
! Heroku push rejected, failed to compile Ruby/rails app
我总是只注释掉SQLite3的gem,它对我很有用,所以当我推送到heroku时,我的gemfile看起来像这样:
# Development Database
#gem 'sqlite3'
# Production Database
gem 'pg'
编辑:
上述解决方案有效,如果您不想因任何原因更新您的宝石,这很容易。 解决此问题的更好的长期解决方案是执行以下操作:
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
然后删除你的gemfile.lock
文件。 您需要生成一个反映您的更改的新gemfile.lock
文件。 在终端运行中:
bundle update
最后,通过在终端中执行以下操作来更新存储库并推送到heroku:
git add .
git commit -m "commit message"
git push heroku
实际上,如果你想在本地使用sqlite3,你的初始Gemfile代码是正确的。 就像你展示的那样,你把它放在gem文件中:
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
然后你必须删除你的本地Gemfile.lock,并运行:
bundle update
重新构建.lock文件。 然后添加并重新提交Gemfile:
git add Gemfile
git commit -m "Gemfile commit message"
然后将新的Gemfile推送到repo:
git push master
当然,相应地改变GIT细节,但是你明白了。 这是关于添加/提交/推送Gemfile的全部内容。
据我所知,Heroku不支持sqlite3,而是使用PostgreSQL数据库。 你需要修改你的Gemfile和你的database.yml。 因此,对于您的生产组,在您的Gemfile中,您将需要:
https://devcenter.heroku.com/articles/rails3
编辑:
这里似乎有一个更详细的答案,所以这可能是重复的: 用SQLite3将Rails推送到Heroku失败
你必须将更新的Gemfile.lock添加到git并尝试git push heroku master ...它对我有用并且肯定它也适合你
并且不要忘记添加config.action_controller.perform_caching = true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.