我正在尝试将我的第一个应用程序部署到Heroku.我正在使用SQLite作为数据库.据我所知,Heroku不使用SQLite - 它在后端切换到Postgres.
当我正在部署时,我收到以下错误:
/usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in`requirement':没有要加载的文件--sqlite3(LoadError)
我Gemfile(这是我假设导致此问题)如下所示:
source 'http://rubygems.org'
gem 'rails', '3.0.0'
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
对rails/heroku来说很新.我创建了一个干净的项目来帮助弄清楚heroku在世界上发生了什么.然后我添加一个:
rails generate controller Pages home contact
Run Code Online (Sandbox Code Playgroud)
http:// localhost:3000/pages/home显示了我们的期望.提交,推送到git,推送到heroku.在heroku上打开页面,它返回错误页面:"我们很抱歉,但出了点问题."
heroku日志似乎没有任何有趣的东西,并且异常并没有记录任何不好的事情.
更新:我已将日志缩减为违规位的示例.
2011-10-06T01:06:05+00:00 app[web.1]: Started GET "/pages/home" for 97.87.14.192 at 2011-10-05 18:06
:05 -0700
2011-10-06T01:06:05+00:00 app[web.1]:
2011-10-06T01:06:05+00:00 app[web.1]: ActiveRecord::ConnectionNotEstablished (ActiveRecord::Connecti
onNotEstablished):
2011-10-06T01:06:05+00:00 app[web.1]:
2011-10-06T01:06:05+00:00 app[web.1]:
2011-10-06T01:06:05+00:00 app[web.1]:
2011-10-06T01:06:05+00:00 app[web.1]: cache: [GET /pages/home] miss
Run Code Online (Sandbox Code Playgroud)
这是我正在运行的gemfile
# gemfile
source 'http://rubygems.org'
gem 'rails', '3.1.0'
group :test do
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'rspec-rails', '2.6.1'
gem 'webrat', '0.7.1'
end
group :development, do
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'rspec-rails', '2.6.1'
end
Run Code Online (Sandbox Code Playgroud) 我试图以与我一直相同的方式将应用程序推送到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.
! …Run Code Online (Sandbox Code Playgroud) 我按照以下步骤操作:
git clone git://github.com/heroku/ruby-sample.git
cd ruby-sample
heroku create
git push heroku master
heroku open
Run Code Online (Sandbox Code Playgroud)
当我试图运行第4步时,我遇到了以下错误:
$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.156' to the list of known hosts.
Counting objects: 63, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (49/49), done.
Writing objects: 100% (63/63), 25.99 KiB | 0 bytes/s, done.
Total 63 (delta 2), reused 0 (delta 0)
-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-2.0.0 …Run Code Online (Sandbox Code Playgroud)