Fluentmigrator会跟踪已对数据库应用的迁移,这很好但是似乎没有可以回滚到数据库中当前版本的情况。
因此,如果我已经应用了5次迁移(假设迁移的顺序ID),那么我将在数据库中使用第5版,因此如果我还有5次迁移(最多10次)并且我进行了滚入式预览,它似乎知道它需要应用6-10这是伟大的,但推出预览似乎并不知道它需要撤消10-6。
CLI表示默认情况下rollback
任务将回滚1步,如果您在没有特定migrate:down
的情况下执行version
,它将回滚所有迁移(假设为版本0) ),有没有办法让它将所有版本回滚到该时刻DB中的内容?
答案 0 :(得分:0)
这是不可能的,它的唯一方式似乎是"要知道它只需要应用6-10是因为流畅的迁移器在数据库中创建了一个表,其中包含应用于数据库的每个迁移的记录。因此,在您的方案中,有五行,最后一行是迁移五行。
当您运行流畅的迁移器时,它会检查该表,以了解它应该应用哪些迁移,因此它知道您在五点停止,然后从6-10开始应用。
现在另一种方式是不可能的,因为在某个时间点没有应用迁移的上下文。
但是,您可以覆盖down函数的行为,例如检查特定的迁移是否应该根据您保留的数字运行down函数,该数字代表您的特定时间点。