将主人推到heroku的问题

时间:2010-10-03 03:06:15

标签: ruby-on-rails ruby-on-rails-3 heroku

我正在关注在线铁路教程

一切正常但是在尝试将主目录推送到heroku时。 当它出现时:

Installing rails3_serve_static_assets... done
-----> Gemfile detected, running Bundler version 1.0.0

install everything but sqlite3, here it output:
Installing sqlite3 (0.1.1) /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/installer.rb:164:in `install': sqlite3 requires Ruby version >= 1.9.1. (Gem::InstallError)
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/source.rb:100:in `install'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:55:in `run'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:44:in `run'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:8:in `install'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/cli.rb:217:in `install'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/task.rb:22:in `send'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/task.rb:22:in `run'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor.rb:246:in `dispatch'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/base.rb:389:in `start'
        from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/bin/bundle:13
        from /usr/ruby1.8.7/bin/bundle:19:in `load'
        from /usr/ruby1.8.7/bin/bundle:19
       FAILED:
 !     Heroku push rejected, failed to install gems via Bundler

现在的事情是: 我使用的是ruby 1.9.2,甚至没有安装1.8.7。 当我列出我的本地宝石时,bundle有这两个版本: bundler(1.0.2,1.0.1)(我不知道为什么) 所以似乎路径有些不好但我不知道如何解决它。 谢谢你的帮助。

6 个答案:

答案 0 :(得分:14)

你走错了路 - Heroku不运行Sqlite,它运行PostgreSQL 。部署应用程序时,它会为您创建一个新的database.yml文件。因此,您不应在gemfile中指定Sqlite - 您只应为开发环境指定它。

这样的事情:

group :production, :staging do
  gem "pg"
end

group :development, :test do
  gem "sqlite3-ruby", :require => "sqlite3"
end

如果您想了解有关Heroku数据库内容的更多信息,请转到here。 我问了一个类似的问题(得到了我的回答)here

答案 1 :(得分:1)

您想要使用sqlite3-ruby gem,而不是sqlite3 gem。

答案 2 :(得分:0)

在heroku上的Ruby 1.9 isn't yet supported。尝试使用1.8.7(例如,降级你的sqlite3宝石)。

答案 3 :(得分:0)

你真的想在Heroku上安装sqlite吗?宝石不应仅限于您的开发环境,而不是生产?你不能在Heroku上使用sqlite做很多事情,看你怎么不写文件系统,也不能指定自定义数据库(Heroku完全管理推送应用程序的数据库设置)。

答案 4 :(得分:0)

1.8.7显示在您的日志中的原因是这是heroku上的默认ruby版本。如果要使用1.9.2,请参阅有关切换堆栈的文档:http://docs.heroku.com/stack

答案 5 :(得分:0)

确保安装pg。至少那是我做错了。 Here你会找到一些帮助。 groupthingy看起来也像是一个合理的建议