Flyway-数据库版本管理工具

介绍

Flyway是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。用通俗的话讲,Flyway可以像Git管理不同人的代码那样,管理不同人的sql脚本,从而做到数据库同步。

同时Flyway可以做到,在进行项目部署时,同时更新数据库结构以及数据。

Flyway工作流程简介

1、 首先配置好flyway的基本信息后,运行项目,会在数据库表中默认新建一个数据表用于存储flyway的运行信息,默认的数据库表名:flyway_schema_history

2、Flyway将对sql脚本的版本号进行排序,并按顺序执行:可以看到执行数据库表后在checksum中储存一个数值,用于在之后运行过程中对比sql文件执行是否有变化,若有变化,则启动报错。

注意:flyway在执行脚本时,会在源数据表中检查checksum值,并确定上次运行到哪一个脚本文件,本次执行时从下一条脚本文件开始执行。

   执行成功的sql脚本,不要修改其内容。

SpringBoot集成Flyway

引入依赖

<dependency>

    <groupId>org.flywaydb</groupId>

    <artifactId>flyway-core</artifactId>

    <version>5.2.4</version>

</dependency>

sql脚本位置以及命名规范

脚本默认目录:src/main/resources/db/migration;

命名规范:

V(Versioned Migrations):每个sql脚本只会执行一次。

  • V:代表该脚本只会执行一次。
  • 2_1:版本号 ;_1代表小版本。
  • __:分隔符;注意:两个下划线

例如:V1_1__init_schema.sql

Flyway的配置

推荐的配置:

Spring:

    flyway:

        #当目标数据库没有flyway_schema_history表时会创建该表,默认为false

        baseline-on-migrate: true

其他的一些配置:

Spring:

    flyway:

        #设置编码集,默认为UTF-8

        encoding:

        #sql 脚本的目录,默认是 classpath:db/migration,如果有多个 用 , 隔开

        locations:

        #配置数据库信息表的名称,默认是 flyway_schema_history。

        table:

        #迁移文件的前缀,默认为V。

        sql-migration-prefix:

        #迁移脚本的文件名分隔符,默认__。

        sql-migration-separator:

        #迁移脚本的后缀,默认为.sql。

        sql-migration-suffix:

        #是否开启flyway,默认为true

        enabled:

Flyway配合数据库比较工具,完成增量部署时的数据库更新。

可以通过SQLyog,navicate等工具进行数据库结构的比较,并生成差异化SQL。

再将sql写入flyway中,达到目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值