2015-04-06 81 views
1

當我嘗試種子我的Rails應用程序4.0,我得到這個錯誤:爲什麼`rake db:seed`失敗,「不知道如何構建任務'db:seed:original'」?

$ rake db:seed --trace 
** Invoke db:seed (first_time) 
** Invoke db:seed:common (first_time) 
rake aborted! 
Don't know how to build task 'db:seed:original' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task_manager.rb:62:in `[]' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:57:in `lookup_prerequisite' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:53:in `block in prerequisite_tasks' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:53:in `map' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:53:in `prerequisite_tasks' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:199:in `invoke_prerequisites' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:178:in `block in invoke_with_call_chain' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_chain' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:201:in `block in invoke_prerequisites' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:199:in `each' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:199:in `invoke_prerequisites' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:178:in `block in invoke_with_call_chain' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_chain' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/task.rb:165:in `invoke' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:150:in `invoke_task' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:106:in `block (2 levels) in top_level' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:106:in `each' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:106:in `block in top_level' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:115:in `run_with_threads' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:100:in `top_level' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:78:in `block in run' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling' 
/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/rake/application.rb:75:in `run' 
/opt/rbenv/versions/2.2.0/bin/rake:33:in `<main>' 
Tasks: TOP => db:seed => db:seed:common 

但我不能找到叫original種子任務的任何引用。這是否內置到Rails?

如果我通過例如手動方式調用我的任何種子任務, rake db:seed:whatever,它工作正常。

有趣的是,在我的種子文件夾中創建了空的文件original.seeds.rb後,播種沒有錯誤地運行。

是什麼導致了這個錯誤?

+1

你有db/seeds.rb嗎? – neo

+0

不是。當我創建一個空的(並刪除'original.seeds.rb')時,它工作。任何想法爲什麼Rake希望在那裏有一個文件? –

+0

@neo我認爲這是問題的原因。如果您想將其擴展爲答案(特別是如果您知道該文件爲何預期),我會接受它。 –

回答

2

您需要創建一個虛擬db/seeds.rb來解決這個問題。當你運行rake db:seed它期望你有這個文件。

相關問題