2011-01-28 4 views
47

rakeタスクをコンソールから起動したい。それは可能ですか?はいの場合は、どうすればいいですか?コンソールからレーキタスクを実行するには?

私は、コンソール上でこれを試してみました:

require 'rake' 
Rake::Task['my_task'].invoke 

が、それは私に、このエラーを与える:

RuntimeError: Don't know how to build task 

レーキがタスクを見つけることができないみたいです。

助けていただければ幸いです。

はあなたに

編集ありがとう:私はそれを行うには2.3.5

答えて

111

は、2つのステップが必要です。

は、通常、これはRakefileで行われていますが、手動でここでそれをしなければならない:(。あなたのRailsアプリケーション名とMyRailsAppを置き換えることを確認してください)

require 'rake' 
MyRailsApp::Application.load_tasks # <-- MISSING LINE 
Rake::Task['my_task'].invoke 

+0

これは私の問題を解決しました。ありがとうございました!! –

+2

その他のオプションについては、http://stackoverflow.com/questions/577944/how-to-run-rake-tasks-from-within-rake-tasksを参照してください。 –

+4

「.invoke」と'.execute'を実行すると、タスクを何度も実行する必要がある場合(起動に時間がかかりすぎるデータサニティチェッカーなど)、タスクを' .execute 'したいでしょう。 –

13

最も簡単な方法は、IRBから%X [コマンド]を実行することであるレールを使用しています。私はあなたが達成したいと思っているかどうかは分かりません。

%x[rake db:migrate] 

EDIT:私は非常にダニエルが受け入れ答えで述べているよう.invokeを使用することをお勧めします。

  1. ロードレーキ
  2. ロードあなたののRakeタスク

あなたは第二のステップが欠落している:あなたのRakeタスクを実行

+0

問題があり、熊手のdoesn私の仕事を認識しているようだ。どんな考え? – Fajarmf

+0

あなたのRakefileを見せてもらえますか? – garno

+0

これは完璧に@garno!すみません、私はそれが1年だったことを知っていて、突然私は同じ必要性に走っています。 – Fajarmf

関連する問題