目录
flyway配置
1. spring-flyway配置
使用环境:dev、test
spring:
flyway:
# 是否启用flyway
enabled: true
# 编码格式,默认UTF-8
encoding: UTF-8
# 迁移sql脚本文件存放路径,默认db/migration
locations: classpath:db/migration
# 迁移sql脚本文件名称的前缀,默认V
sql-migration-prefix: V
# 迁移sql脚本文件名称的分隔符,默认2个下划线__
sql-migration-separator: __
# 迁移sql脚本文件名称的后缀
sql-migration-suffixes: .sql
# 迁移时是否进行校验,默认true
validate-on-migrate: false
# 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
baseline-on-migrate: true
#如果已有表结构为1,否则为0。0用于新服务器部署
baselineVersion: 1
outOfOrder: true
使用环境:uat、prod
spring:
flyway:
# 是否启用flyway
enabled: true
# 编码格式,默认UTF-8
encoding: UTF-8
# 迁移sql脚本文件存放路径,默认db/migration 生产环境为db/prod
locations: classpath:db/prod
# 迁移sql脚本文件名称的前缀,默认V
sql-migration-prefix: V
# 迁移sql脚本文件名称的分隔符,默认2个下划线__
sql-migration-separator: __
# 迁移sql脚本文件名称的后缀
sql-migration-suffixes: .sql
# 迁移时是否进行校验,默认true
validate-on-migrate: true
# 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
baseline-on-migrate: true
#如果已有表结构为1,否则为0。0用于新服务器部署
baselineVersion: 1
#严格按照版本顺序
outOfOrder: false
2.依赖引入
compile 'org.flywaydb:flyway-core'
插件篇
1. 插件安装
2. 项目初始化
执行以下步骤、提交到文件到主分支
- 切换分支到主分支
- 根目录创建version文件,并写入版本名称为init(注意不要带任何空格)
- 根目录创建sql文件,并创建子目录(有几个服务创建几个,名称与服务名一致,注意api包等不用创建)
- 将测试环境的sql导出,并保存到对应的模块下,改名为init.sql
- 使用versiontool(参考 第5步:进入测试——sql脚本复制到项目内,注意,执行两次,一次dev,一次prod)
- push代码。
3.开发开始——创建分支(注意:在主分支下进行)
在version.txt文件按住alt+insert,选择gitTool
4. 开发途中——表结构修改语句的存入(此时处于开发环境)
5. 进入测试——sql脚本复制到项目内
在version.txt文件按住alt+insert,选择versionTool,选择项目路径,项目不用填写,点击开始同步,提交代码并部署到测试环境,启动项目即可自动执行sql文件
执行完后会在resource目录下生成flyway插件可执行的sql文件。
6. 进入生产与uat(先合并代码到主分支),以下操作在主分支进行
执行完以下操作后,提交代码,备份数据库,并发布到生产,启动项目即可执行sql
7. 开发完成
注意事项
- 使用前,必须在主分支执行初始化
- 使用前,代码不应该有任何未提交的文件
- sql子文件夹个数,必须与可jar模块个数一致,名称必须也一致
- 执行完操作后必须将文件add到仓库并且提交代码