如何从 VersionInfo 中确定 Fluent Migrator 的当前版本?

How to determine current version from VersionInfo for Fluent Migrator?

提问人:Aiyuni 提问时间:5/5/2023 最后编辑:Guru StronAiyuni 更新时间:5/5/2023 访问量:184

问:

我在 .NET 6 中使用 Fluent Migrator。

我知道 Fluent Migrator 会查看 VersionInfo 表,以确定当我们向下迁移或向上迁移时需要应用哪些迁移。

例如,我们可以不使用任何参数,Fluent Migrator 将在查看数据库中的 VersionInfo 表后自动确定我们需要应用哪些迁移(如果有)。runner.MigrateUp()

我的问题是,我们如何在 C# 代码中获取当前版本,以便我们可以确定是向上还是向下迁移到用户输入的版本号?

换句话说,我想做这样的事情:

if (userInputVersion > currentVersion)
{
   runner.MigrationUp(userInputVersion)
}
else 
{
  runner.MigrationDown(userInputVersion) 
}

有没有办法通过 Fluent Migrator 方法在 C# 代码中找到这个“currentVersion”,而无需对数据库表本身进行原始查询?

C# net-6.0 fluent-migrator

评论


答:

2赞 Guru Stron 5/5/2023 #1

尝试用于此目标(应通过 DI 提供,如进程内示例所示):IVersionLoader

IVersionLoader versionLoader = ...; // should be available via DI
var latest = versionLoader.VersionInfo.Latest();