<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>5.0.7</version>
</dependency>
spring.flyway.clean-disabled=true #禁止flyway执行清理
spring.flyway.ignore-missing-migrations=true #忽略缺失的升级脚本验证
#升级脚本位置,可以多个,可以给每个环境使用不同位置
spring.flyway.locations=classpath:db/migration,classpath:test/db/migration
##如果我们并不是在项目初就加flyway的话,则在有历史数据的情况下,加入flyway后,将会出现:set baselineOnMigrate to true to initialize the schema history table.解决方法将baselineOnMigrate设置为true。注意,不同版本的设置方法并不相同。有的版本是:spring.flyway.baselineOnMigrate有的则是flyway.baselineOnMigrate
spring.flyway.baselineOnMigrate=true
1. Fayway在每次应用启动时检测是否有需要执行的升级脚本;
2. 文件名以V作为前缀的,后跟版本号,版本号格式可以为为大版本号(1、2),也可以包含小版本号(1.1或1_1),但是需统一,不能有些有小版本号,有些没有;
3.前缀为V的脚本不可重复执行,每个脚本只会被执行一次。已经执行过的历史版本脚本不能再修改,除非清除flayway的历史记录,重新执行升级脚本,这在生产环境不允许。
前缀为R的脚本,后面无版本号,如R__updateversion.sql,可以重复执行,每次内容发生变化时重启后就会执行。
4. Flyway需要创建存储脚本升级记录用的表,因此需要建表权限,也可以事先建好。默认表名为flyway_schema_history;
flyway.baseline-description= # 执行基线时标记已有Schema的描述
flyway.baseline-version=1 # 基线版本默认开始序号 默认为 1.
flyway.baseline-on-migrate=false # 针对非空数据库是否默认调用基线版本 , 这也是我们上面版本号从 2 开始的原因
flyway.check-location=false # 是否开启脚本检查 检查脚本是否存在 默认false
flyway.clean-on-validation-error=false # 验证错误时 是否自动清除数据库 高危操作!!!
flyway.enabled=true # 是否启用 flyway.
flyway.encoding=UTF-8 # 脚本编码.
flyway.ignore-failed-future-migration=true # 在读元数据表时,是否忽略失败的后续迁移.
flyway.init-sqls= # S获取连接后立即执行初始化的SQL语句
flyway.locations=classpath:db/migration # 脚本位置, 默认为classpath: db/migration.
flyway.out-of-order=false # 是否允许乱序(out of order)迁移
flyway.placeholder-prefix= # 设置每个占位符的前缀。 默认值: ${ 。
flyway.placeholder-replacement=true # 是否要替换占位符。 默认值: true 。
flyway.placeholder-suffix=} # 设置占位符的后缀。 默认值: } 。
flyway.placeholders.*= # 设置占位符的值。
flyway.schemas= # Flyway管理的Schema列表,区分大小写。默认连接对应的默认Schema。
flyway.sql-migration-prefix=V # 迁移脚本的文件名前缀。 默认值: V 。
flyway.sql-migration-separator=__ # 迁移脚本的分割符 默认双下划线
flyway.sql-migration-suffix=.sql # 迁移脚本的后缀 默认 .sql
flyway.table=schema_version # Flyway使用的Schema元数据表名称 默认schema_version
flyway.url= # 待迁移的数据库的JDBC URL。如果没有设置,就使用配置的主数据源。
flyway.user= # 待迁移数据库的登录用户。
flyway.password= # 待迁移数据库的登录用户密码。
flyway.validate-on-migrate=true # 在运行迁移时是否要自动验证。 默认值: true 。