回滚到以前的Fluent Migrator版本

11

我正在尝试使用Fluent Migrator使我的项目能够进行迁移。但是由于缺乏文档,我很难弄清楚如何回滚并调用我的迁移类的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 "Data Source=.\sqlexpress;Initial Catalog=ekmDomains;Integrated Security=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 migrator工具的命令行选项,并看到了一个--version选项。我以为要回滚到先前的版本,只需提供--version 1,然后就会调用AddNewTableDown方法。然而,这并没有发生。控制台只是显示了一个“提交事务”方法然后关闭了。但表格没有被删除,版本号也没有改变。

我做错了吗?或者有人能看出我做法中的一些根本性缺陷吗?

1个回答

17

要进行迁移向下,您可以使用-t migrate:down。除了向下和向上之外,migrate.exe的帮助文档还列出了回滚、rollback:toversionrollback:all


这些内容在流利迁移控制台文档中有更详细的介绍。 - Liam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接