springboot 整合 Flyway
Flyway的文件命名格式: V+版本号+双下划线+文件自定义命名.sql
例:V1.1.0__demo.sql
注:可以通过flyway.sql-migration-prefix修改默认值"V",改为其他
优势:发布到生产环境会自动同步对应的数据库免去人员手动同步的复杂度(人员手动维护容易出现漏表的情况)
使用Flyway:
1.引入依赖:
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>5.2.4</version> </dependency> <build> <plugins> <plugin> <groupId>org.flywaydb</groupId> <artifactId>flyway-maven-plugin</artifactId> <version>5.2.4</version> </plugin> </plugins> </build>
2.配置数据源:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
3.在resources下创建db.migration(默认的配置路径是这里)
4.创建名为 V1.1.0__demo.sql的文件自己编辑SQL脚本
注:建议以1.1.0为其实版本,我用1.0的命名会报错。
版本号不能重复,要不断累加,且不能这次先使用1.1.9,然后下一次加回1.1.8。
不建议修改已经执行的sql脚本,会报内容不一致的错误
5.启动项目时,会自动在数据库创建一张flyway_schema_history的版本记录表
Flyway的基本配置:
spring:
flyway:
# 如果启动的时候需要flyway管理sql脚本的话,将enabled设置为true
enabled: true
# 如果数据库不是空表,需要设置成 true,否则启动报错
baseline-on-migrate: true
# 验证错误时 是否自动清除数据库 高危操作!
clean-on-validation-error: false
# flyway 字符编码
encoding: UTF-8

浙公网安备 33010602011771号