2015-08-18 35 views
0

有人有什麼替代方案是在這裏問過類似的問題:如何驗證一系列rake任務是否正確運行?或者,有耙

https://github.com/jimweirich/rake/issues/257

從維護者的答案是:

I am going to reject this since it allows you to use tasks in non-rake-like ways. 

因此,使用耙的正確方法是什麼如果任務取決於其他任務。

task 'succeed' => ['db:drop','stats'] do something end 

統計的結果顯示即使Postgres的拋出錯誤和db:因爲活動連接的降failded。

如果rake不適合系統維護,我應該使用哪些工具? 我需要能夠運行數據庫的備份,然後執行一些測試,然後刪除數據庫並最終從備份中恢復。

對HEL你明白我的問題,看看如下因素片段

namespace :experiment do 
    desc "TODO" 
    task 'succeed' => ['stopme', 'stats'] do 
    puts 'this and stats task should not run' 
    end 

    desc "TODO" 
    task stopme: :environment do 
    Rake::Task['db:drop'].invoke 
    end 
end 
+0

是不是好做的備份副本本身的性實驗?然後,您不需要恢復備份,並且您在使用數據庫時創建的用戶數據也不會丟失。 – EugZol

+0

@EugZol - 不,因爲我們需要返回到原始保存的數據並運行其他測試 –

回答

2

您可以手動調用任務那樣:

task :stats => :environment do 
    Rake::Task['db:drop'].invoke rescue nil 
    # do something 
end 
+0

它沒有工作:-( –

+0

什麼是錯誤信息?可能是因爲你應該加載環境 - 我正在更新我的答案 – EugZol

+0

rake任務試圖刪除數據庫,然後顯示大量回溯和'Could not drop db_development',然後顯示rake stats的輸出,最後顯示'this and stats task should not run' –