mysql

flyway-数据库版本管理工具

2020-08-25  本文已影响0人  simperLv

它是谁

flyway是一款开源的数据库版本管理工具,它可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置。Migrations可以写成SQL脚本,也可以写在Java代码中,本文主要是看一下它在springboot中的表现。

Why database migrations?

首先我们以为我们连接的DB是这样的:


image.png

结果在项目中发现我们连的DB是这样的:


image.png
各自在自己分支开发的时候还好,但是合并代码以及上线后数据库统一就成了问题了。我们总不能改一点数据库就把sql语句拿着去改各个服务器的DB吧(万一漏掉哪个不是很蛋疼)

于是我们就引入了flyway,让它帮我们管理DB,引入之后会在我们数据库中生成对应的flyway_schema_history表用来记录sql执行情况

在springboot中的使用

引入依赖

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

flyway的配置

  # 数据库版本管理
  flyway:
    # 启用或禁用 flyway
    enabled: false
    # 字符编码 默认 UTF-8
    encoding: UTF-8
    # 执行迁移时是否自动调用验证
    validate-on-migrate: true
    # 禁止清理数据库表
    clean-disabled: true
    # 如果数据库不是空表,需要设置成 true,否则启动报错
    baseline-on-migrate: true
    # 与 baseline-on-migrate: true 搭配使用
    baseline-version: 0
    # 脚本位置(默认)
    locations: classpath:db/migration
脚本位置.png
数据库.png

如果想进一步了解的话,可以去官方网站康康

上一篇下一篇

猜你喜欢

热点阅读