Fluentmigrator跟踪数据库应用了哪些迁移,这很好,但似乎没有回滚到数据库中当前版本的方案。
因此,如果我已经应用了5个迁移(假设迁移的id是连续的),那么我将在数据库中的版本5上,所以如果我还有5个迁移(最多10个),并且我做了一个滚入预览,它似乎知道它需要应用6-10,这很好,但转出预览似乎不知道它需要撤消10-6。
命令行界面说,默认情况下,rollback
任务将回滚1步,如果您在没有特定version
的情况下执行migrate:down
,它将回滚所有迁移(假设到版本0),那么有没有办法让它将所有版本回滚到数据库中的版本?
发布于 2017-09-19 04:58:36
这是不可能的,它“似乎”知道它只需要应用6-10的唯一方式是因为fluent migrator在您的数据库中创建了一个表,其中包含应用于数据库的每个迁移的记录。因此,在您的场景中,有五行,最后一行是迁移五行。
当您运行fluent migrator时,它会检查该表,以了解它应该应用哪些迁移,因此它知道您在5点停止,然后从6点到10点应用。
现在,另一种方式是不可能的,因为没有与某个时间点的应用迁移相关的上下文。
但是,您可以覆盖down函数的行为,例如,检查该特定迁移是否应根据您保存的数字运行down函数,否则,该数字将代表您的特定时间点。
https://stackoverflow.com/questions/45211811
复制相似问题