2015-12-14 43 views
0

當我的某個目標函數發生錯誤時,我希望我的應用程序首先使用DropDb,然後失敗。但是,當我有以下代碼:如何使用F#FAKE的DropDb後跟failwith?

DropDb *databaseInfo* |> ignore 
failwith "Migration failed" 

DropDb丟棄數據庫之前,應用程序失敗。

一旦DropDb完成,我該如何才能讓應用程序失敗?

回答

0

我似乎找到了問題:

在我的劇本,我已經跑了DROPDB之前,然後創建一個數據庫一次。假冒的DROPDB的代碼是:

let DropDb serverInfo = 
    if intitialCatalogExistsOnServer serverInfo then 
     logfn "Dropping database %s on server %s" (getDBName serverInfo) (getServerName serverInfo) 
     (getDatabase serverInfo).DropBackupHistory |> ignore 
     getDBName serverInfo |> serverInfo.Server.KillDatabase 
    serverInfo 

serverInfo已被存儲在一個不是由腳本在我以前的,因此,initialCatalogExistsOnServer返回false,沒有的代碼運行再次創建數據庫的更新緩存。