Mongock是否有文档化的文件命名规范?关于ChangeUnit排序的疑问
Mongock为何没采用文件名嵌入排序规则的设计
- 核心设计思路差异:Mongock是把迁移逻辑当作代码而非静态脚本来管理的,所以更偏向通过
@ChangeUnit注解的order属性定义执行顺序,而非依赖文件名。这种设计让排序逻辑和代码绑定在一起,重构类名时不需要修改前缀序号,能减少人为失误。 - 支持动态调整需求:有些场景下迁移顺序可能需要动态调整(比如根据环境配置、数据库状态来决定),注解的
order可以实现动态赋值(比如从配置文件读取),但文件名的静态序号做不到这一点。 - 与Flyway的定位区别:Flyway主要面向SQL脚本的版本管理,文件名排序是静态脚本场景下的直观方案;但Mongock支持包含业务逻辑、依赖注入的Java代码迁移,这时候用代码内的注解定义顺序,更符合代码工程化的管理方式。
- 自定义规范完全可行:虽然Mongock没强制要求文件名排序,但团队可以自行约定
A001_XXXChange.java这类命名风格,作为注解order的辅助——文件名排序用来直观展示顺序,注解order作为实际执行的依据,两者并不冲突,Mongock也不会阻止这种自定义规范。
内容的提问来源于stack exchange,提问作者IcedDante
相关产品推荐
相关产品推荐

