如何配置Flyway移除迁移文件名默认V前缀以识别自定义命名文件
解决方案
1. 修正配置写法
你之前配置不生效大概率是配置格式错误导致的,根据你使用的配置文件类型选择对应写法:
- 如果你用的是
application.yaml/application.yml,配置如下:
spring: flyway: # 配置SQL迁移文件前缀为空,注意双引号不能省略 sql-migration-prefix: "" # 若不需要自定义undo、重复迁移前缀,以下两行可以省略 undo-sql-migration-prefix: "U" repeatable-sql-migration-prefix: "R"
- 如果你用的是
application.properties,配置如下,注意等号后不要加引号、不要留空格:
spring.flyway.sql-migration-prefix=
2. 解决校验报错问题
Flyway的校验报错是因为flyway_schema_history元数据表中已经存在旧的迁移记录,和你新的命名规则不匹配,根据场景选择处理方式:
- 开发/测试环境:可以直接清空
flyway_schema_history表,或者临时添加配置spring.flyway.clean-on-validation-error: true启动一次(该配置会自动清理校验不通过的历史记录,禁止在生产环境使用) - 生产环境:临时添加配置
spring.flyway.repair: true启动一次,Flyway会自动修正元数据表的记录和本地迁移文件匹配,启动成功后移除该配置即可。
额外校验项
确认你的迁移文件符合命名规则:版本号和描述之间必须为两个下划线__,你给出的示例20210902193819451__init_schema.sql是符合要求的,不需要修改。
内容的提问来源于stack exchange,提问作者Caroline
相关产品推荐
相关产品推荐

