Ruby on rails Rails 3.1 Sqlite3推送到Heroku时出错

Ruby on rails Rails 3.1 Sqlite3推送到Heroku时出错,ruby-on-rails,sqlite,heroku,ruby-on-rails-3.1,Ruby On Rails,Sqlite,Heroku,Ruby On Rails 3.1,我有一个rails 3.1应用程序,我正试图推送到Heroku。当我推它时,它总是失败 Installing sqlite3 (1.3.4) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we ca

我有一个rails 3.1应用程序,我正试图推送到Heroku。当我推它时,它总是失败

Installing sqlite3 (1.3.4) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks!
       /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
       /usr/local/bin/ruby extconf.rb
       checking for sqlite3.h... no
       sqlite3.h is missing. Try 'port install sqlite3 +universal'
       or 'yum install sqlite3-devel' and check your shared library search path (the
       location where your sqlite3 shared library is located).
我将gem文件更改为具有以下行:

gem 'sqlite3', :group => [:development, :test]
gem 'pg', :group => [:production]

即使在运行bundle安装等之后,我也会收到错误。我甚至在我的gem文件中没有sqlite3的情况下运行了一些测试,它仍然试图在Heroku上安装它。有什么建议吗?

根据文档,Cedar stack还不支持没有的
捆绑包,因此它仍将尝试在部署时安装它


老实说,如果你也在部署postgres,那么在本地使用postgres会更好。

哈哈,原来我在一个分支上工作,并且在推我的主子。一旦我将它们合并并按下正确的分支,一切都很顺利

只是检查您是否提交了Gemfile和Gemfile.lock,然后将它们推送到heroku?还有,你在heroku上使用哪一个堆栈?是的,我已经提交了所有内容并将其全部推送到heroku,或者更确切地说,我已经尝试过了。我正在尝试使用Cedar,因为这是Rails 3.1需要使用的东西。只有当你想使用资产管道时,Rails 3.1才会在其他堆栈上运行。现在我已经在使用sqlite3了,有没有办法切换它?当然,如果你使用heroku db:push local,它会将你的SQLlite db推到postgres中(如果您想在Heroku获得本地数据),请重新配置开发数据库(config/database.yml)成为postgres,然后做一个heroku db:pull,从heroku把它拉回来。如果我真的能从heroku开始,我会这么做。一个解决方案是删除对sqllite的引用-部署到heroku,这样它实际上在pg上工作。然后在本地读取sqlite并做heroku db:push。