在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
,然后调用AddNewTable
的Down
。然而,这并没有发生。控制台只是显示一个"提交事务"方法,然后关闭。但是表没有被删除,版本号也没有改变。
我这样做是错误的方式,或者有人能看到我这样做的一些根本缺陷吗?
要向下迁移,可以使用-t migrate:down
。除了down和up, migration .exe的帮助还列出了rollback, rollback:toversion
和rollback:all
。