我正在尝试使用流畅的迁移器让迁移与我的项目一起使用。但由于缺少文档,我正在努力弄清楚如何回滚并为我的迁移类调用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” - connect“数据 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");
}
}
再次运行批处理文件后,一切正常。然后,我查看了流畅的迁移器工具的命令行选项,并看到了--version
选项。我假设要回滚到以前的版本,我只会提供--version 1
并调用Down
的{{1}}。然而,这并没有发生。控制台只显示“提交事务”方法然后关闭。但该表尚未删除,版本号未更改。
我这样做的方式是错误的,还是有人能看到我这样做的一些根本缺陷?
答案 0 :(得分:16)
要向下迁移,请使用-t migrate:down
。除了向下和向上,migrate.exe的帮助还列出了回滚,rollback:toversion
和rollback:all
。