2

我刚开始尝试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");
    }
}

然而,实际上发生的是运行程序抛出一个错误(这会导致控制台应用程序崩溃)并且数据库留下了创建的 Table1 并且 VersionInfo 表中没有行。这似乎是一个糟糕的状态。

使用最新的 FluentMigrator 代码(截至今天)、Visual Studio 2008 并针对 SQL Server 2008 Express。

4

1 回答 1

2

1 月 26 日增加了对交易的支持。

于 2010-01-25T17:42:37.367 回答