在Fluent Migrator中回滚到以前的版本

本文关键字:版本 Fluent Migrator | 更新日期: 2023-09-27 18:16:36

我正在尝试使用流利的迁移器与我的项目进行迁移。但是由于缺乏文档,我正在努力弄清楚如何回滚并为我的迁移类调用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——目标"bin ' ' 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,然后调用AddNewTableDown。然而,这并没有发生。控制台只是显示一个"提交事务"方法,然后关闭。但是表没有被删除,版本号也没有改变。

我这样做是错误的方式,或者有人能看到我这样做的一些根本缺陷吗?

在Fluent Migrator中回滚到以前的版本

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