flyway提供的功能:数据库版本管理
- pom.xml文件用引入文件
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>6.3.3</version>
</dependency>
- application.yml文件中配置
spring:
flyway:
enabled: true #是否启用flyway(默认true)
locations: classpath:db/migration/sqlserver #sql脚本文件位置
- 数据库脚本规范
命名规范 : V+版本号(纯数字或者以小数点或者以下划线分隔的数字)+__(双下划线)+描述字符串(支持英文和下划线).
版本号:自增,每次都需要增加一位 ,如1,2,3,建议以1.0开始
描述字符串:建议是以操作类型(INIT,UPDATE)加上微服务名称,如果是更新的,再增加更新时间(也可不加)。如:
- 注意事项
1、不支持降级,支持事务回滚,千万不要手动更改数据库表结构!!!更新前,做好备份!
2、在resources资源文件夹下的sql路径要与配置路径保持一致,如上面配置文件夹db/migration/sqlserver
3、不要使用@PostConstruct注解做数据查询处理,因为启动微服务时会先启动PostConstruct里的方法,后启动flyway,可能造成方法无法读取还没有创建的数据库表; 如果要使用,则使用注解@DependsOn(“flywayInitializer”)
4、V7.1.5_20211123_1100__init.sql第三个是两个下划线,请注意!
5、使用R可以重新执行已经修改过的sql文件,如:R__V7.1.5_20211123_1100__init.sql