Spring Cloud整合Flyway

  1. 什么是FlyWay
    Flyway是一个开源的数据库迁移工具,可以自动化地管理数据库版本控制和迁移。它可以集成到Java应用程序中,并与版本控制系统(如Git和Subversion)集成,使得团队协作数据库开发变得容易和高效。Flyway支持多种数据库,包括PostgreSQL、MySQL、Oracle、SQL Server和H2等。什么是FlyWay
  2. 如何在Spring Cloud中集成Flyway
    在pom文件中加载Flyway依赖(在使用Flyway时必须确保Mybatis架包已经在服务里添加了依赖
		<dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
            <version>5.2.4</version>
        </dependency>

application.yml配置:

erver:
  port: 8093

spring:
  application:
    name: manage-kernel
  flyway:
    enabled: true
    baseline-on-migrate: true
    locations: classpath:db/migration
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/XXXXX?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: 123456

根据配置文件的位置,需要在resources目录下新建文件夹db.migration用来存放sql文件。
在这里插入图片描述
在db.migration文件夹下添加迭代更新脚本,文件名格式 V + 版本号 + 两个下划线_ + 描述 + .sql
文件命名必须以.sql结尾,在sql文件里添加脚本语句

alter table `t_student_info`  Add column `student_name` varchar(200) not null default "" AFTER  `student_id`;

启动项目:

在这里插入图片描述
代码里出现图上的日志即表明执行成功
Flyway执行成功后会在数据库表里创建 flyway_schema_history表,该表的作用是来记录数据库中已经执行过的所有版本的信息,包括执行的版本号、描述、文件名、时间等等。每当Flyway执行一次迭代操作时就会插入一条记录,保证数据库的版本控制能够正常的运行

  1. 踩坑点
***************************
APPLICATION FAILED TO START
***************************

Description:

Flyway failed to initialize: none of the following migration scripts locations could be found:
	- classpath:db/migration
Action:

Review the locations above or check your Flyway configuration

此处提示找不到脚本位置原因可能是因为你再创建的时候是使用 db.migration的方式进行创建的,通过该方式创建的文件夹可能看起来是分级的文件夹,但实际上可能在目录里他是一个名为db.migration的文件夹,所以需要分开创建
在这里插入图片描述
在这里插入图片描述

添加Flyway依赖后,运行程序时提示架包冲突,这时候看下自己flyway的版本是不是过高。我因为之前配置的flyway版本时7.15.0因此提示架包冲突,后将版本降低至5.2.4解决。

上述文章是我在搭建自己的微服务过程中出现的问题,如果这篇文章有什么错误之处,欢迎大佬指正!感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值