如何使用 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 returns false 和 none代码运行。