簡體   English   中英

我該如何使用F#FAKE的DropDb,然后使用failwith?

[英]How do I use F# FAKE's DropDb followed by a failwith?

當我的Target函數之一引發錯誤時,我希望我的應用程序先運行DropDb,然后失敗。 但是當我有以下代碼時:

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

在DropDb刪除數據庫之前,應用程序將失敗。

如何使應用程序僅在DropDb完成后失敗?

我似乎發現了問題:

在我的腳本中,我之前已經運行過DropDb,然后再次創建了一個數據庫。 FAKE中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,並且沒有代碼運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM