1.前言
当前工程整合思路就是依据SpringBoot整合Flyway方式进行。@张超 负责的bbs项目中已经有了整合实例。对于现有的X6、竞拍、It工单等一个项目占用一个数据库的项目改造十分的容易。但是对于电商和BI中其他项目而说(多个项目共用一个数据库),这种情况改造起来略显吃力,暂未有明确的做法。
2.单服务单库改造
这种项目引入flyway十分容易,具体的可以改造的项目有:
项目名称 | 对应的数据库名称 |
---|---|
X6 | x6 |
竞拍 | auction |
IT工单 | itorder |
2.1改造方式(x6为例)
①在x6-service
的pom文件添加依赖
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
②resource下新增目录 db.migration
③配置文件application.yml
添加如下配置(必须)
spring:
flyway:
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 |
所以,这种形式的解决思路待考虑。请各位热心同事帮忙给个解决思路