1.前言

当前工程整合思路就是依据SpringBoot整合Flyway方式进行。@张超 负责的bbs项目中已经有了整合实例。对于现有的X6、竞拍、It工单等一个项目占用一个数据库的项目改造十分的容易。但是对于电商和BI中其他项目而说(多个项目共用一个数据库),这种情况改造起来略显吃力,暂未有明确的做法。

2.单服务单库改造

这种项目引入flyway十分容易,具体的可以改造的项目有:

项目名称 对应的数据库名称
X6 x6
竞拍 auction
IT工单 itorder

2.1改造方式(x6为例)

①在x6-service的pom文件添加依赖
image.png

  1. <dependency>
  2. <groupId>org.flywaydb</groupId>
  3. <artifactId>flyway-core</artifactId>
  4. </dependency>

②resource下新增目录 db.migration
image.png
③配置文件application.yml添加如下配置(必须)

  1. spring:
  2. flyway:
  3. baseline-on-migrate: true

之后每次升级的脚本放置在db.migrate下即可,在开发、测试和生产启动后,会对开发库、测试库和生产库作相应脚本的执行。

3.多服务单库改造

类似于电商项目,mall-trade-service使用的是 mall-trade数据库,mall-item-service使用的也是mall-trade数据库。因此你这两个服务同时引入 flyway时,需要保证 db.migration中的脚本完全一致才行。

服务 数据库
si项目、qa项目….. report
mall-trade-service、mall-item-service、mall-merchant-service… mall_trade
invoice-service、message-service yurun_common

所以,这种形式的解决思路待考虑。请各位热心同事帮忙给个解决思路