2013-08-23 27 views
0
存在錯誤

編輯:

在試圖得到這個工作,我註釋掉違規factory_girl完全 - 它仍然給了同樣的錯誤 -`Heroku的open`失敗 - 表沒有在日誌

cannot load such file -- factory_girl_rails 
/app/lib/tasks/sample_data.rake:1:in require' 

有什麼我需要做的,以使heroku工作/看到我的更新文件?

OP:

heroku open回報We're sorry, but something went wrong.在瀏覽器中,並從heroku logs如下:

2013-08-23T21:18:48.870042+00:00 app[web.1]: Started GET "/" for 86.59.188.18 at 2013-08-23 21:18:48 +0000 
2013-08-23T21:18:49.388611+00:00 app[web.1]: 
2013-08-23T21:18:49.388611+00:00 app[web.1]: ActiveRecord::StatementInvalid (Mysql2::Error: Table 'heroku_9e0ff302f567892.users' doesn't exist: SHOW FULL FIELDS FROM `users`): 
2013-08-23T21:18:49.388611+00:00 app[web.1]: app/models/user.rb:52:in `authenticate_with_salt' 
2013-08-23T21:18:49.388611+00:00 app[web.1]: app/helpers/sessions_helper.rb:62:in `user_from_remember_token' 
2013-08-23T21:18:49.388611+00:00 app[web.1]: app/helpers/sessions_helper.rb:32:in `current_user' 
2013-08-23T21:18:49.388611+00:00 app[web.1]: app/helpers/sessions_helper.rb:13:in `logged_in?' 
2013-08-23T21:18:49.388611+00:00 app[web.1]: app/controllers/pages_controller.rb:32:in `home' 
2013-08-23T21:18:49.388611+00:00 app[web.1]: 
2013-08-23T21:18:49.388611+00:00 app[web.1]: 
2013-08-23T21:18:49.388906+00:00 app[web.1]: Processing by PagesController#home as HTML 
2013-08-23T21:18:49.388906+00:00 app[web.1]: Completed 500 Internal Server Error in 5ms 
2013-08-23T21:18:49.390347+00:00 heroku[router]: at=info method=GET path=/ host=shrouded-caverns-2325.herokuapp.com fwd="86.59.188.18" dyno=web.1 connect=2ms service=528ms status=500 bytes=643 

運行heroku run rake db:schema:load --trace回報:

rake aborted! 
cannot load such file -- factory_girl_rails 
/app/lib/tasks/sample_data.rake:1:in `require' 
/app/lib/tasks/sample_data.rake:1:in `<top (required)>' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/engine.rb:425:in `load' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/engine.rb:425:in `block in load_tasks' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/engine.rb:425:in `each' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/engine.rb:425:in `load_tasks' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/application.rb:145:in `load_tasks' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/railtie/configurable.rb:30:in `method_missing' 
/app/Rakefile:7:in `<top (required)>' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load_rakefile' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:637:in `raw_load_rakefile' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:94:in `block in load_rakefile' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:93:in `load_rakefile' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:77:in `block in run' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/lib/rake/application.rb:75:in `run' 
/app/vendor/bundle/ruby/2.0.0/gems/rake-10.1.0/bin/rake:33:in `<top (required)>' 
/app/vendor/bundle/ruby/2.0.0/bin/rake:23:in `load' 
/app/vendor/bundle/ruby/2.0.0/bin/rake:23:in `<main>' 

文件扔工廠女孩錯誤:

namespace :db do 

    desc "Fill db with sample data" 

    task :populate, :environment do 

    require 'factory_girl_rails' 

    ... 

    end 

end 

的Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.13' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

gem "autotest" 
gem 'autotest-growl' 
gem 'webrat' 
gem "json", "~> 1.4" 
gem "thor", "~> 0.17.0" 
gem "cocoon" 
gem 'jquery_datepicker' 

#DB 

gem "mysql2" 
gem "pg" 

#GROUPS 

#development 

group :development do 

    gem "rspec-rails" 
    gem "annotate" 
    gem "faker" 

end 

#test 

group :test do 

    gem "rspec" 
    gem 'factory_girl_rails', :require => false 

end 


# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

# gem 'jquery-rails' (http://stackoverflow.com/a/17053795/2128691) 
gem 'jquery-rails', '~> 2.3.0' 
+0

你運行遷移:heroku運行rake db:migrate –

+0

是的,與'rake db:schema:load'相同的輸出錯誤 – dax

+0

你是否在開發環境中運行'bundle install'來修復'Gemfile.lock'在推到Heroku之前?如果沒有,請嘗試。 – Gene

回答

0

過了一段時間來得到這個工作,但我終於做到了 - 來解決這一難題的這個特殊的一塊,我加入/lib/spec.slugignore - 這可能並不適用於所有人的答案,但是目前它的罰款我。

0

原因它拋出一個錯誤,是因爲工廠女孩軌僅在「測試」模式下安裝。在heroku上,除非另有說明,否則您的應用通常處於「製作」模式。我會從填充任務中取出需求。此外,您可能更適合以測試爲基礎創建工廠。請參見https://github.com/thoughtbot/factory_girl/wiki/Usage

另一種選擇是在生產模式下安裝工廠女孩。簡單地把寶石的「工廠女孩欄」從測試組中拿出來。

+0

其實我註釋掉factory_girl完全 - 它仍然給了同樣的錯誤 - '無法加載這樣的文件 - factory_girl_rails /app/lib/tasks/sample_data.rake:1:in'require'' 是有什麼我需要做的,以使我的更新文件heroku工作? – dax