Mongock迁移完成后删除过时ChangeUnit(runAlways=false)是否会引发问题?
关于删除已完成的ChangeUnit类的建议
可以安全删除这个用于删除数据库集合的ChangeUnit类,不会引发问题,原因如下:
- 迁移框架的核心逻辑是依赖数据库中的变更日志跟踪已执行操作,而非代码里的ChangeUnit类是否存在。只要日志里已经记录了这个删除操作的执行记录,框架就会认定该变更已完成,不会因为代码中没有这个类而报错或重复执行。
- 你本地测试没问题是符合预期的——框架启动时只会扫描当前代码中未被日志记录的变更,已完成的变更对应的代码存在与否不影响正常运行。
需要注意两个关键点:
- 确认所有运行环境(开发、测试、生产)都已经执行过这个迁移操作后,再删除代码,避免遗漏环境导致后续迁移异常。
- 如果后续需要回滚这个“删除集合”的操作,原ChangeUnit类其实起不到直接作用——回滚通常需要手动重建集合并恢复数据,所以删除这个类不会额外增加回滚的复杂度。
内容的提问来源于stack exchange,提问作者Lil
相关产品推荐
相关产品推荐

