Ruby on rails 希罗库?

Ruby on rails 希罗库?,ruby-on-rails,deployment,heroku,bundle,Ruby On Rails,Deployment,Heroku,Bundle,我想跑 heroku rake db:migrate 但我总是犯这个错误 (in /app) /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: alread

我想跑

heroku rake db:migrate
但我总是犯这个错误

(in /app)
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED
rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
rake aborted!
test-unit is not part of the bundle. Add it to Gemfile.
/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/shared_helpers.rb:102:in `block in cripple_rubygems'
/app/lib/tasks/rspec.rake:1:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `load'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `block in load_with_new_constant_marking'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `load_with_new_constant_marking'
/app/.bundle/gems/ruby/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:14:in `block in <top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:14:in `each'
/app/.bundle/gems/ruby/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:14:in `<top (required)>'
/app/Rakefile:11:in `require'
但我得到了这个错误

(in /app)
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED
rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
rake aborted!
test-unit is not part of the bundle. Add it to Gemfile.
/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/shared_helpers.rb:102:in `block in cripple_rubygems'
/app/lib/tasks/rspec.rake:1:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `load'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `block in load_with_new_constant_marking'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `load_with_new_constant_marking'
/app/.bundle/gems/ruby/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:14:in `block in <top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:14:in `each'
/app/.bundle/gems/ruby/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:14:in `<top (required)>'
/app/Rakefile:11:in `require'
在我的本地开发中,看起来我使用的是ruby 1.8,但在heroku上,它看起来是ruby 1.9.1,可能是这导致了它……关于如何解决这个问题,有什么想法吗

这是我的档案,如果有帮助的话

source 'http://rubygems.org'

#gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
gem 'rails', '2.3.8'
gem 'will_paginate', '2.3.12'
gem 'googlecharts'
gem 'faker'
gem 'httparty'
gem 'bandsintown'
gem 'itunes-search-api','0.1.0', :path => 'vendor/gems/itunes-search-api-0.1.0'
gem 'i18n', '0.4.2'
gem "giggly", "~> 0.1.2"
gem "ruby-paypal",'0.0.5', :path => 'vendor/gems/ruby-paypal-0.0.5'


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

看起来您需要修改GEM文件,请尝试使用下面的文件,看看是否适合您:

source 'http://rubygems.org'

gem 'rails', '2.3.8'
gem 'will_paginate', '2.3.12'
gem 'googlecharts'
gem 'faker'
gem 'httparty'
gem 'bandsintown'
gem 'itunes-search-api','0.1.0', :path => 'vendor/gems/itunes-search-api-0.1.0'
gem 'i18n', '0.4.2'
gem "giggly", "~> 0.1.2"
gem "ruby-paypal",'0.0.5', :path => 'vendor/gems/ruby-paypal-0.0.5'

group :production do
  gem 'test-unit'
  gem 'pg'
end


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

我知道heroku需要postgress gem,所以将
gem pg
添加到您的gem文件中,否则迁移将无法工作。另外,看起来您需要
测试单元
gem,所以也安装它,看看是否能获得相同的跟踪。我使用的是sqllite而不是postgress…我还需要它吗?将它放在生产gem组中,这样它就只能在生产中安装。这似乎合乎逻辑,但我在使用googlecharts(1.6.7)进行捆绑安装时遇到此错误从供应商/gems/itunes-search-api-0.1.0的源代码使用itunes搜索api(0.1.0)安装pg(0.11.0)和本机扩展/Library/Ruby/Site/1.8/rubygems/installer.rb:551:“build_extensions”中:错误:无法构建gem本机扩展。(Gem::Installer::ExtensionBuildError)当您运行bundle安装时,将其作为bundle安装运行—不进行生产。每次在本地绑定时都需要这样做,以避免安装PostgreSQL。如果你在linux上的话,我会建议你用一个别名或者别的什么。但是我确实让这个rake流产了!无法激活测试单元(=1.2.3,运行时),已激活测试单元-2.3.1。确保所有依赖项都添加到Gemfile中。这意味着您之前已经安装了测试单元,然后又重新安装了它。卸载1.2.3版本就可以了。还有,为什么要在生产中开发测试单元?它应该只用于开发和测试,我遇到了同样的问题,添加带有“gem'pg'”的生产块解决了它!谢谢+1.