栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

flyway详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flyway详解

flyway详解
    • 概述
    • 图示说明
    • 代码实现

概述

Flyway对数据库的所有更改都被称为migrations(迁移),migrations可以是版本化的可重复的。版本化migrations有两种形式:常规和撤消

图示说明

基于sql

基于java

常规迁移(sql):有一个版本、一个描述、一个校验和,校验和用于检测意外更改
通常用于:

  • 创建/更改/删除表/索引/外键/枚举/UDT/…
  • 用户数据更正
  • 数据更新
    例如
CREATE TABLE `my_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8;

INSERT INTO my_test (name) VALUES ('DeLorean');

撤销迁移(sql):和常规迁移一样的版本号,用于撤销常规迁移(也就是常规迁移的逆向sql)
通常用于:

  • 撤销同一版本的数据
    例如
DELETe FROM my_test WHERe name='DeLorean';

可重复迁移:有描述和校验和,但没有版本,且不是只运行一次,而是每次校验和更改时应用他们
通常用于:

  • (重新)创建视图/过程/函数/包/…
  • 批量引用数据重新插入
    例如
CREATE OR REPLACe VIEW blue_cars AS 
    SELECT id, license_plate FROM cars WHERe color='blue';
代码实现

1、导入maven

        
        
            org.flywaydb
            flyway-core
            5.2.4
        
         
          
            com.baomidou
            mybatis-plus-boot-starter
            3.4.2
        
        
            mysql
            mysql-connector-java
            8.0.17
        

2、application.yml配置

server:
  port: 31001
spring:
  datasource:
    password: root
    username: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/novel_cloud?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=true
  flyway:
    baseline-on-migrate: true                  # 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
    enabled: true                              # 是否启用flyway
    locations: classpath:db/migration          # 迁移sql脚本文件存放路径,默认db/migration
    sql-migration-prefix: V                    # 迁移sql脚本文件名称的前缀,默认V
    sql-migration-separator: __                # 迁移sql脚本文件名称的分隔符,默认2个下划线__
    sql-migration-suffixes: .sql               # 迁移sql脚本文件名称的后缀
    validate-on-migrate: true                  # 迁移时是否进行校验,默认true

3、创建resources/db/migration文件夹

启动项目查看结果


文件被创建

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/306571.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号