.net 使用fluentmigrator进行上下文回滚

.net 使用fluentmigrator进行上下文回滚,.net,database-migration,fluent-migrator,.net,Database Migration,Fluent Migrator,Fluentmigrator跟踪已应用于数据库的迁移,这很好,但是似乎没有可以回滚到数据库中当前版本的场景 因此,如果我已经应用了5次迁移(假设迁移的顺序id),我将在DB的版本5上,因此如果我还有5次迁移(最多10次),并且我进行了滚入预览,它似乎知道它需要应用6-10,这很好,但滚出预览似乎不知道它需要撤销10-6 CLI表示,rollback任务在默认情况下将回滚1步,如果要执行migrate:down而没有特定的版本,它将回滚所有迁移(假定为版本0),那么,有没有一种方法可以让它将所有版

Fluentmigrator跟踪已应用于数据库的迁移,这很好,但是似乎没有可以回滚到数据库中当前版本的场景

因此,如果我已经应用了5次迁移(假设迁移的顺序id),我将在DB的版本5上,因此如果我还有5次迁移(最多10次),并且我进行了滚入预览,它似乎知道它需要应用6-10,这很好,但滚出预览似乎不知道它需要撤销10-6


CLI表示,
rollback
任务在默认情况下将回滚1步,如果要执行
migrate:down
而没有特定的
版本,它将回滚所有迁移(假定为版本0),那么,有没有一种方法可以让它将所有版本回滚到数据库中当时的版本呢?

这是不可能的,它“似乎”知道它只需要应用6-10的唯一方法是因为fluent migrator在数据库中创建了一个表,其中包含应用于数据库的每个迁移的记录。所以在您的场景中,有五行,最后一行是迁移五行

运行fluent migrator时,它会检查该表,以了解应该应用哪些迁移,从而知道您在5点停止,然后从6点到10点应用

现在,另一种方法是不可能现成的,因为在某个时间点应用的迁移没有上下文

但是,您可以重写down函数的行为,例如,检查特定迁移是否应基于您保留的数字运行down函数,否则,该数字将表示您的特定时间点