Lea*_*cim 6 ruby-on-rails heroku
我试图以与我一直相同的方式将应用程序推送到Heroku.我正在使用Ruby 1.9.2和Rails 3.2.1.但是,现在我收到此错误消息.我做了它的建议
make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)
注意,即使我在我的gemfile中也这样做了
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
Run Code Online (Sandbox Code Playgroud)
但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
Run Code Online (Sandbox Code Playgroud)
我总是只注释掉SQLite3的gem,它对我很有用,所以当我推送到heroku时,我的gemfile看起来像这样:
# Development Database
#gem 'sqlite3'
# Production Database
gem 'pg'
Run Code Online (Sandbox Code Playgroud)
编辑:
上述解决方案有效,如果您不想因任何原因更新您的宝石,这很容易.解决此问题的更好的长期解决方案是执行以下操作:
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
Run Code Online (Sandbox Code Playgroud)
然后删除你的gemfile.lock文件.您需要生成一个gemfile.lock反映您的更改的新文件.在终端运行中:
bundle update
Run Code Online (Sandbox Code Playgroud)
最后,通过在终端中执行以下操作来更新存储库并推送到heroku:
git add .
git commit -m "commit message"
git push heroku
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4449 次 |
| 最近记录: |