flay基本参数配置说明
# 数据库配置
spring.datasource.platform=mysql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db_flyway?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
# 关闭jpa升级数据库
spring.jpa.hibernate.ddl-auto=none
# flyway配置
# 禁止flyway执行 清空数据库操作 太过危险
spring.flyway.clean-disabled=true
# 是否启动flyway
spring.flyway.enabled=true
# 已经执行过的flyway文件不再执行
spring.flyway.baseline-on-migrate=true
spring.flyway.baseline-version=1
# flyway自身依赖表的表名
spring.flyway.table= flyway_schema_version
# flyway文件的地址 可以放在文件系统中 filesystem:/var/db/migration/
spring.flyway.locations= classpath:db/migration
# 开发环境为true 生产环境为false 是否按照顺序执行
spring.flyway.out-of-order=true
# flyway 运行到指定的版本
spring.flyway.target=20200616.10.29
具体参数参见 [flyway参数详解](https://www.cnblogs.com/itplay/p/10974701.html
flyway常见问题
1. flyway文件编码:
flyway可以指定文件编码,
spring.flyway.encoding=xxx
, 默认为utf-8格式,提交flyway文件时文件编码记得与环境变量中保持一致,否则会出现异常;
2. flyway dev升级:
如果升级到最新版本:直接將最新的flyway文件放到指定文件夾下即可(需要遵循对应的命名规则),需要注意的是版本需要大于原來的版本;flyway默认升级到最新版本;
如果升级到指定版本:需要清空掉之前的flyway历史记录表的记录,然后指定环境变量
spring.flyway.target=xxx
,xxx 为指定的版本号;
值得注意的是:如果是使用jpa需要将jpa的自动生成数据库开关关闭,避免和flyway冲突;
3. flyway dev降级:
根据官网提示:flyway暂不支持降级,https://flywaydb.org/documentation/faq#downgrade;
如果在万不得已的情况下,降级操作步骤:1.删除数据库所有表,然后指定环境变量spring.flyway.target=xxx(对应的目标版本),然后重启系统即可;
4. flyway使用注意点;
- flyway文件只能追加,不能修改文件本身,如果之前flyway添加的数据有问题,需要新添加flyway文件然后再文件中执行脚本删除之前的有问题数据;
- 每次新建flyway文件需要再本地dev环境运行成功后才能push;
- flyway文件提交后,记得及时将flyway文件的改变同步到uat环境中;