Flyway 9.4.0报错:撤销SQL脚本文件名格式不被识别
Flyway撤销脚本命名格式错误排查及解决方法
问题核心
你的撤销脚本命名为U006__DROP_TABLE_LS.sql,执行flyway -validateMigrationNaming=true info时被判定为格式无效,但同格式的V前缀版本脚本无异常。
错误原因及解决步骤
撤销脚本必须对应已存在的版本脚本
Flyway要求撤销脚本的版本号必须与某个已存在的V<版本号>__<描述>.sql完全一致。比如你必须先有V006__CREATE_TABLE_LS.sql,才能使用U006__DROP_TABLE_LS.sql作为其撤销脚本。如果没有对应的V版本脚本,Flyway会识别为无效命名。社区版不支持撤销功能
Flyway社区版没有Undo脚本的支持,即使命名完全符合规则,也会被判定为无效格式。如果用的是社区版,要么升级到企业版,要么改用反向的版本脚本(比如写一个V007__DROP_TABLE_LS.sql来实现回滚)。命名细节检查
确认撤销脚本的命名严格符合规则:- 前缀必须是
U,紧跟版本号(无空格) - 版本号与描述之间必须是两个下划线(
__),不能是单个或多个 - 描述部分仅允许字母、数字和下划线,不能包含特殊字符
- 前缀必须是
正确示例
- 合法的版本脚本:
V006__CREATE_TABLE_LS.sql - 对应的合法撤销脚本:
U006__DROP_TABLE_LS.sql
内容的提问来源于stack exchange,提问作者Saturnian
相关产品推荐
相关产品推荐

