说明
在大部分情况下,我们通常会在一个项目中使用多个数据库,例如开发使用dev库,生产使用prod库。我们如果需要部署新的服务到生产环境,则需要手动修改prod库,使其数据格式与dev库一致,不然会出错。最近这种事情干多了,想要项目在启动时自动执行,又不想自己写脚本来做,就搜到了Flyway这个项目https://github.com/flyway/flyway,使用了一下感觉还行,上线生产将enabled开启就行,在这记录一下使用方式。全部代码已上传github->springboot-flywaydb
快速开始
yml配置
spring:
flyway:
# 正式环境才开启
enabled: true
# 禁用数据库清理
clean-disabled: true
encoding: UTF-8
# flyway 会在库中创建此名称元数据表,用于记录所有版本演化和状态,同一个库不同项目可能冲突,每个项目一张表来记录
table: flyway_schema_history_flywaydb
# 基线版本默认开始序号 默认为 1
baseline-version: 1
# 针对非空数据库是否默认调用基线版本,为空的话默认会调用基线版本
baseline-on-migrate: true
# 定义 afterMigrateError.sql 要清理的元数据表表名
placeholders:
flyway-table: ${spring.flyway.table}
locations: classpath:/db
在resources目录下新建db目录
db目录下新建文件afterMigrateError.sql
<