我已经看到了相关问题。 FluentMigrator Failed Migrations Don't Rollback?和Rollback to a specfic Migration in FluentMigrator。但不幸的是,我无法通过此解决方案解决我的回滚问题。我正在使用FluentMigrator来版本化数据库。
我的迁移代码:
using FluentMigrator;
namespace WebCruiter.Candidate.DBMigration.Migrations.R2016_6
{
[Migration(20160908000908, "USERSTORY")]
public class Migration20160908000908 : AutoReversingMigration
{
public override void Up()
{
Create.Column("TestUrl").OnTable("JobApplication").AsString(500).Nullable();
}
}
}
我尝试从命令行回滚此版本(20160908000908
):
migrate.exe -c "server=(LocalDB)\MSSQLLocalDB;Initial Catalog=Candidate;Integrated Security=True" -db sqlserver2014 -a ".\..\..\..\WebCruiter.Candidate.DBMigration\bin\Debug\FluentMigrator.dll" -t rollback:20160908000908
JobApplication 没有回滚列 TestUrl ,它显示:
有人可以帮我解决我犯错的地方吗?
答案 0 :(得分:1)
因为您需要在要回滚的迁移之前向运行者提供迁移的数量。所以说你有迁移1,2和3.你要回滚3,你会给跑步者 2
目前你给跑步者的不是那个,请在'20160908000908'之前进行迁移。
这基本上是Rollback to a specfic Migration in FluentMigrator中编写的内容,您编写了最后一个迁移的数量,而不是要回滚的迁移数量。