2010-01-23 49 views
2

我剛開始試驗FluentMigrator。我注意到失敗的遷移沒有被回滾。這只是尚未實施?這似乎相當糟糕,因爲它使數據庫處於故障狀態。FluentMigrator失敗遷移不要回滾?

例如,當它嘗試第二次添加Table1時,下面的遷移顯然會失敗(我只是這樣做來強制執行錯誤)。我期望遷移被包含在一個事務中,當事務失敗時它將被回滾。

[Migration(1)] 
public class AddTable : Migration 
{ 
    public override void Up() 
    { 
     Create.Table("Table1").WithIdColumn(); 
     Create.Table("Table1").WithIdColumn(); 
    } 

    public override void Down() 
    { 
     Delete.Table("Table1"); 
    } 
} 

然而,發生了什麼,而不是是亞軍拋出一個錯誤(這將導致控制檯應用程序崩潰)和數據庫留下了表1創建並在VERSIONINFO表中沒有行。這似乎是一個糟糕的狀態,讓事情進入。

使用最新的FluentMigrator代碼(截至今天),Visual Studio 2008和SQL Server 2008 Express。

回答