2015-04-06 40 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它期望你有这个文件。

相关问题