2011-02-03 5 views
2

Railsの移行タスクを呼び出すときにrake haltの実行を行う方法はありますか?今は、それぞれを試してまっすぐに実行されます。私が本当に望むのは、ドロップを試み、次に作成を試み、いずれかが成功すれば、移行を実行し、成功すればシードし、失敗したらエラーを停止して表示します。Rake-Rails on Railsはエラーをマイグレーションしますか?

私は各タスクで呼び出しを試みましたが、結果をテストしましたが、それはどちらかと思われません。

ありがとうございました。

答えて

0

デフォルトでは、Rakeは最初に例外が発生したときに停止します。たとえば、次の例では "That"は決して印刷されません。

task :this do 
    puts "This" 
    raise "Fail!" 
end 

task :that do 
    puts "That" 
end 

task :default => [:this,:that] 

それはあなたが望むものではありませんか?

+0

これは理想的でしょう。 Railsはタスクをマイグレーションすると呼びますが、内部的に例外をスローするようなことはありません。 – evets

+1

私が本当に探しているのは、Railsタスクからの戻り値がわかっていると思います。Rake :: Task ['db:drop']。invokeと言ってください。たとえば、db:dropが失敗または成功またはその他のステータスコードを返す場合などです。 – evets

関連する問題