数据库版本控制工具Flyway

2 篇文章 0 订阅
1 篇文章 0 订阅

数据库版本控制工具Flyway

简介

简而言之 就是一个控制数据库版本的工具 每次更改数据库都会生成一条数据 启动项目会加载一次数据库文件 从而同步到数据库中 让数据迁移更有条理性

使用步骤

引入maven依赖
  版本跟随spring的版本就可以
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
        </dependency>

        <plugin>
           <groupId>org.flywaydb</groupId>
           <artifactId>flyway-maven-plugin</artifactId>
           <version>6.4.4</version>
        </plugin>
配置文件配置
spring:
  flyway:
    enabled: true # 开启flyway  
    baseline-on-migrate: true #如果执行sql 脚本之前,数据库是非空状态。那么需要指定这个配置
    clean-disabled: true  # 禁用Clean命令 
    #Flyway 的 Clean 命令,会将 Flyway 所连接的数据库中的所有内容全部清理掉,不论其中的表或数据是否是通过 Flyway 添加进去的。
    out-of-order: true # 取消文件限制 
添加 sql 脚本

flyway会自动找 resources 目录下的 db -> migration 文件夹下的sql文件 从第一个文件开始 往下执行 因此sql文件的命名推荐是 V时间_test.sql 比如 V2020091401_test.sql 后面的01是指当日修改的序号

/*
 Navicat Premium Data Transfer

 Source Server         : 43.143.64.26
 Source Server Type    : MySQL
 Source Server Version : 50736
 Source Host           : 43.143.64.26:3306
 Source Schema         : xdclass_user

 Target Server Type    : MySQL
 Target Server Version : 50736
 File Encoding         : 65001

 Date: 14/09/2022 16:05:04
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role`  (
                         `id` bigint(20) NOT NULL COMMENT '角色表',
                         `role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名称',
                         `identification` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色标识',
                         PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of role
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;

启动项目 查看数据库 就会生成这张表 还有一个flyway版本控制表 值得一提的是 flyway每次启动都会去验证每个sql文件的hash值 当hash值不一致时 flyway就会认为这个sql文件发生了改变 然后就会再次运行 就有可能会报错 所以使用的时候一定要注意这一点 每次数据库的更改 推荐都必须再新建一个sql文件

在这里插入图片描述
在这里插入图片描述
更多配置 请查看flyway官网查看

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挚爱妲己~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值