问题描述
当您启动应用程序时,FluentMigrator 如何知道要执行/迁移哪些迁移?
示例:我已经执行了两次迁移(1 和 2)。现在,我创建第三个迁移并为其指定 ID 3
。当我启动我的应用程序时,FluentMigrator 将执行迁移,但它怎么知道跳过前两个?
using FluentMigrator;
namespace test
{
[Migration(3)]
public class AddLogTable : Migration
{
public override void Up()
{
Create.Table("Log")
.WithColumn("Id").AsInt64().PrimaryKey().Identity()
.WithColumn("Text").Asstring();
}
public override void Down()
{
Delete.Table("Log");
}
}
}
解决方法
在数据库中创建了一个名为 VersionInfo 的表,其中记录了有关每次迁移的信息。在应用迁移之前,将执行检查以查看此表中已有哪些记录。
,默认将所有信息存储在“VersionInfo
”表中。使用此信息,它可以确定需要将哪些迁移应用于该数据库,然后将连续执行它需要应用的每个迁移。另外,如果需要,您可以manage metadata of this table