11

我正在尝试使用流利的迁移器使迁移与我的项目一起工作。但是由于缺乏文档,我正在努力弄清楚如何回滚并Down为我的迁移类调用该方法。

我使用初始版本 1 类设置了数据库:

[Migration(1)]
public class Baseline : Migration
{
    public override void Up()
    {
        Execute.Script("1_Baseline\\baseline.sql");
    }

    public override void Down() { }
}

我正在通过包含以下内容的批处理文件运行迁移:

"....\tools\fluentmigrator\migrate.exe" --connection "数据源=.\sqlexpress;初始目录=ekmDomains;集成安全=true;multipleactiveresultsets=true;" --db SqlServer2005 --target "bin\Release\EkmDomains.Migrations.dll"

这工作正常。所以我写了第二个迁移类来测试它:

[Migration(2)]
public class AddNewTable : Migration
{
    public override void Up()
    {
        Create.Table("NewTable").WithColumn("name").AsString();
    }

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

再次运行批处理文件后,一切正常。然后我查看了 fluent 迁移器工具的命令行选项,并看到了一个--version选项。我假设要回滚到以前的版本,我只需提供--version 1并调用Downof 。AddNewTable然而,这并没有发生。控制台只显示一个“提交事务”方法,然后关闭。但是表并没有被删除,版本号也没有改变。

我这样做是不是错误的方式,或者任何人都可以看到我这样做的一些根本缺陷吗?

4

1 回答 1

17

要向下迁移,请使用-t migrate:down. 除了 down 和 up,migrate.exe 的帮助还列出了回滚rollback:toversionrollback:all.

于 2011-12-06T18:31:59.137 回答