我刚开始尝试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。