Springboot整合Flyway实现数据库版本管理

开发过程中经常会遇到发布不同环境时需要更新对应的数据库脚本,未集成前,需手动将增量脚本在目标库执行一遍,有时候还得比对下哪些是本次升级需要执行的脚本,非常麻烦!

第一种:启动时自动升级数据库版本
1)pom.xml增加flyway依赖

测试用h2数据库,所以此处加入h2的依赖

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>8.5.13</version>
</dependency>

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

 2)application.yml文件中增加flyway的配置

#application.yml
spring:
    profiles:
        active: dev
    flyway:
        # 数据库连接url
        url: jdbc:h2:~/testh2
        # 数据库用户名
        user: test
        # 数据库密码
        password: test
        #驱动类名
        driverClassName: org.h2.Driver
        # 启用或禁用 flyway
        enabled: true
        ##生成环境一定要禁用clean
        clean-disabled: true
        ##数据库升级文件的路径
        locations: classpath:/db/migration
        # 设置为 true 后 flyway 将在需要 baseline 的时候, 自动执行一次 baseline。
        baseline-on-migrate: true
        # 是否允许不按顺序迁移 开发建议 true  生产建议 false
        out-of-order: false
        # 执行迁移时是否自动调用验证,当你的版本不符合逻辑,比如你先执行了DML而没有对应的DDL会抛出异常
        validate-on-migrate: true
        validate-migration-naming: false
3)按照配置,在项目resources目录下创建数据库文件路径,如下图
重点!!!(数据文件格式一定要对,否则flyway识别不了)
至此springboot已接入flyway,每次启动springboot程序时,会自动检测resourses目录下/db/migration目录下的数据文件,依次写入到数据库,如下截图


如新增一个脚本文件

重新启动springboot程序


第二种:使用maven插件执行命令手动升级数据库版本

1)pom.xml plugins增加flyway插件,在plugins下增加

<plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <version>8.5.13</version>
                <!--      关联数据库账号与密码       -->
                <configuration>
                    <url>jdbc:h2:~/testh2</url>
                    <user>test</user>
                    <password>test</password>
                    <locations>
                        <location>classpath:/db/migration</location>
                    </locations>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>com.h2database</groupId>
                        <artifactId>h2</artifactId>
                        <version>2.1.214</version>
                    </dependency>
                </dependencies>
            </plugin>

2)在项目根目录执行命令手动升级数据库版本

命令:mvn compile fly:migrate

以上命令执行完后,输出信息中可以看到类似上面第一种方式

附:

右侧可以看到flyway所有的命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值